Class: Philiprehberger::StateMachine::TransitionBuilder
- Inherits:
-
Object
- Object
- Philiprehberger::StateMachine::TransitionBuilder
- Defined in:
- lib/philiprehberger/state_machine/transition.rb
Overview
Collects transitions for a single event via the DSL.
Instance Attribute Summary collapse
-
#parallel_definitions ⇒ Object
readonly
Returns the value of attribute parallel_definitions.
-
#transitions ⇒ Object
readonly
Returns the value of attribute transitions.
Instance Method Summary collapse
-
#initialize ⇒ TransitionBuilder
constructor
A new instance of TransitionBuilder.
-
#parallel_states(*states) ⇒ Object
Define parallel substates activated during this transition.
-
#transition(from:, to:, guard: nil) ⇒ Object
Define a transition within an event block.
Constructor Details
#initialize ⇒ TransitionBuilder
Returns a new instance of TransitionBuilder.
35 36 37 38 |
# File 'lib/philiprehberger/state_machine/transition.rb', line 35 def initialize @transitions = [] @parallel_definitions = {} end |
Instance Attribute Details
#parallel_definitions ⇒ Object (readonly)
Returns the value of attribute parallel_definitions.
33 34 35 |
# File 'lib/philiprehberger/state_machine/transition.rb', line 33 def parallel_definitions @parallel_definitions end |
#transitions ⇒ Object (readonly)
Returns the value of attribute transitions.
33 34 35 |
# File 'lib/philiprehberger/state_machine/transition.rb', line 33 def transitions @transitions end |
Instance Method Details
#parallel_states(*states) ⇒ Object
Define parallel substates activated during this transition.
52 53 54 55 |
# File 'lib/philiprehberger/state_machine/transition.rb', line 52 def parallel_states(*states) key = @transitions.last&.to || :_default @parallel_definitions[key] = states.flatten end |
#transition(from:, to:, guard: nil) ⇒ Object
Define a transition within an event block.
45 46 47 |
# File 'lib/philiprehberger/state_machine/transition.rb', line 45 def transition(from:, to:, guard: nil) @transitions << Transition.new(from: from, to: to, guard: guard) end |