Class: Hecks::Bluebook::DSL::LifecycleBuilder
- Inherits:
-
Object
- Object
- Hecks::Bluebook::DSL::LifecycleBuilder
- Includes:
- WordGate
- Defined in:
- lib/hecks/bluebook/dsl/lifecycle_builder.rb
Constant Summary collapse
- GRAMMAR_CONTEXT =
"Lifecycle"
Constants included from WordGate
Class Method Summary collapse
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(field, default:) ⇒ LifecycleBuilder
constructor
A new instance of LifecycleBuilder.
-
#transition_impl(mapping) ⇒ Object
RENAMED FROM
transition— item #13's full metaprogrammed dispatch (slice 4c).
Constructor Details
#initialize(field, default:) ⇒ LifecycleBuilder
Returns a new instance of LifecycleBuilder.
10 11 12 13 14 |
# File 'lib/hecks/bluebook/dsl/lifecycle_builder.rb', line 10 def initialize(field, default:) @field = field @default = default @transitions = [] end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Hecks::Bluebook::DSL::WordGate
Class Method Details
.build(field, default:, &block) ⇒ Object
36 37 38 39 40 |
# File 'lib/hecks/bluebook/dsl/lifecycle_builder.rb', line 36 def self.build(field, default:, &block) builder = new(field, default: default) builder.instance_eval(&block) if block builder.build end |
Instance Method Details
#build ⇒ Object
32 33 34 |
# File 'lib/hecks/bluebook/dsl/lifecycle_builder.rb', line 32 def build Lifecycle.new(field: @field, default: @default, transitions: @transitions) end |
#transition_impl(mapping) ⇒ Object
RENAMED FROM transition — item #13's full metaprogrammed
dispatch (slice 4c). Bootstrap-reachable (syntax.bluebook's
own Keyword/Argument entities describe their status
lifecycle with it), so in BOOTSTRAP_CALLS_FALLBACK.
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/hecks/bluebook/dsl/lifecycle_builder.rb', line 20 def transition_impl(mapping) mapping = mapping.dup from = mapping.delete(:from) mapping.each do |command, target| @transitions << [ command.to_s, StateTransition.new(target: target, from: from) ] end end |