Module StateMachine::MatcherHelpers
In: lib/state_machine/matcher_helpers.rb

Provides a set of helper methods for generating matchers

Methods

all   any   same  

Public Instance methods

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

[Source]

    # File lib/state_machine/matcher_helpers.rb, line 28
28:     def all
29:       AllMatcher.instance
30:     end
any()

Alias for all

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

[Source]

    # File lib/state_machine/matcher_helpers.rb, line 50
50:     def same
51:       LoopbackMatcher.instance
52:     end

[Validate]