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, line 28
def all
  AllMatcher.instance
end
Also aliased as: any
any()
Alias for: all
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, line 50
def same
  LoopbackMatcher.instance
end