Array
A path represents a sequence of transitions that can be run for a particular object. Paths can walk to new transitions, revealing all of the possible branches that can be encountered in the object’s state machine.
Determines whether or not this path has completed. A path is considered complete when one of the following conditions is met:
The last transition in the path ends on the target state
There are no more transitions remaining to walk and there is no target state
# File lib/state_machine/path.rb, line 85 def complete? !empty? && (@target ? to_name == @target : transitions.empty?) end
Lists all of the events that can be fired through this path.
For example,
path.events # => [:park, :ignite, :shift_up, ...]
# File lib/state_machine/path.rb, line 70 def events map {|transition| transition.event}.uniq end
The initial state name for this path
# File lib/state_machine/path.rb, line 37 def from_name first && first.from_name end
Lists all of the from states that can be reached through this path.
For example,
path.to_states # => [:parked, :idling, :first_gear, ...]
# File lib/state_machine/path.rb, line 46 def from_states map {|transition| transition.from_name}.uniq end
The end state name for this path. If a target state was specified for the path, then that will be returned if the path is complete.
# File lib/state_machine/path.rb, line 52 def to_name last && last.to_name end
Creates a new transition path for the given object. Initially this is an empty path. In order to start walking the path, it must be populated with an initial transition.
Configuration options:
:target - The target state to end the path on
:guard - Whether to guard transitions with the if/unless conditionals defined for each one
# File lib/state_machine/path.rb, line 22 def initialize(object, machine, options = {}) assert_valid_keys(options, :target, :guard) @object = object @machine = machine @target = options[:target] @guard = options[:guard] end
Generated with the Darkfish Rdoc Generator 2.