class FiniteMachine::ChoiceMerger
A class responsible for merging choice options
Public Class Methods
new(machine, name, transitions = {})
click to toggle source
Initialize a ChoiceMerger
@param [StateMachine] machine @param [String] name @param [Hash] transitions
the transitions and attributes
@api private
# File lib/finite_machine/choice_merger.rb, line 16 def initialize(machine, name, transitions = {}) @machine = machine @name = name @transitions = transitions end
Public Instance Methods
choice(to, conditions = {})
click to toggle source
Create choice transition
@example
event :stop, from: :green do choice :yellow end
@param [Symbol] to
the to state
@param [Hash] conditions
the conditions associated with this choice
@return [FiniteMachine::Transition]
@api public
# File lib/finite_machine/choice_merger.rb, line 37 def choice(to, conditions = {}) transition_builder = TransitionBuilder.new(@machine, @name, @transitions.merge(conditions)) transition_builder.call(@transitions[:from] => to) end
Also aliased as: default