method
fire
rails latest stable - Class:
ActiveModel::StateMachine::Event
fire(obj, to_state = nil, *args)public
No documentation available.
# File activemodel/lib/active_model/state_machine/event.rb, line 22
def fire(obj, to_state = nil, *args)
transitions = @transitions.select { |t| t.from == obj.current_state(@machine ? @machine.name : nil) }
raise InvalidTransition if transitions.size == 0
next_state = nil
transitions.each do |transition|
next if to_state && !Array(transition.to).include?(to_state)
if transition.perform(obj)
next_state = to_state || Array(transition.to).first
transition.execute(obj, *args)
break
end
end
next_state
end