module StateMachine::MatcherHelpers
Provides a set of helper methods for generating matchers
Public Instance Methods
all()
click to toggle source
Represents a state that matches all known states in a machine.
Examples¶ ↑
class Vehicle state_machine do before_transition any => :parked, :do => lambda {...} before_transition all - :parked => all - :idling, :do => lambda {} event :park transition all => :parked end event :crash transition all - :parked => :stalled end end end
In the above example, all
will match the following states since they are known:
-
parked
-
stalled
-
idling
# File lib/state_machine/matcher_helpers.rb 28 def all 29 AllMatcher.instance 30 end
Also aliased as: any
same()
click to toggle source
Represents a state that matches the original from
state. This is useful for defining transitions which are loopbacks.
Examples¶ ↑
class Vehicle state_machine do event :ignite transition [:idling, :first_gear] => same end end end
In the above example, same
will match whichever the from state is. In the case of the ignite
event, it is essential the same as the following:
transition :parked => :parked, :first_gear => :first_gear
# File lib/state_machine/matcher_helpers.rb 50 def same 51 LoopbackMatcher.instance 52 end