# File lib/state_machine/event.rb, line 165 def transition_for(object, requirements = {}) requirements[:from] = machine.states.match!(object).name unless custom_from_state = requirements.include?(:from) guards.each do |guard| if match = guard.match(object, requirements) # Guard allows for the transition to occur from = requirements[:from] to = match[:to].values.empty? ? from : match[:to].values.first return Transition.new(object, machine, name, from, to, !custom_from_state) end end # No transition matched nil end