class Statesman::EventTransitions
Attributes
event_name[R]
machine[R]
Public Class Methods
new(machine, event_name, &block)
click to toggle source
# File lib/statesman/event_transitions.rb, line 5 def initialize(machine, event_name, &block) @machine = machine @event_name = event_name instance_eval(&block) end
Public Instance Methods
transition(from: nil, to: nil)
click to toggle source
# File lib/statesman/event_transitions.rb, line 11 def transition(from: nil, to: nil) from = to_s_or_nil(from) to = array_to_s_or_nil(to) machine.transition(from: from, to: to) machine.events[event_name] ||= {} machine.events[event_name][from] ||= [] machine.events[event_name][from] += to end
Private Instance Methods
array_to_s_or_nil(input)
click to toggle source
# File lib/statesman/event_transitions.rb, line 28 def array_to_s_or_nil(input) Array(input).map { |item| to_s_or_nil(item) } end
to_s_or_nil(input)
click to toggle source
# File lib/statesman/event_transitions.rb, line 24 def to_s_or_nil(input) input.nil? ? input : input.to_s end