# File lib/state_machine/event.rb, line 207 def transition_for(object, requirements = {}) assert_valid_keys(requirements, :from, :to, :guard) requirements[:from] = machine.states.match!(object).name unless custom_from_state = requirements.include?(:from) branches.each do |branch| if match = branch.match(object, requirements) # Branch 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