Class | StateMachine::PathCollection |
In: |
lib/state_machine/path_collection.rb
|
Parent: | Array |
Represents a collection of paths that are generated based on a set of requirements regarding what states to start and end on
from_name | [R] | The initial state to start each path from |
machine | [R] | The state machine these path are walking |
object | [R] | The object whose state machine is being walked |
to_name | [R] | The target state for each path |
Creates a new collection of paths with the given requirements.
Configuration options:
# File lib/state_machine/path_collection.rb, line 29 29: def initialize(object, machine, options = {}) 30: options = {:deep => false, :from => machine.states.match!(object).name}.merge(options) 31: assert_valid_keys(options, :from, :to, :deep, :guard) 32: 33: @object = object 34: @machine = machine 35: @from_name = machine.states.fetch(options[:from]).name 36: @to_name = options[:to] && machine.states.fetch(options[:to]).name 37: @guard = options[:guard] 38: @deep = options[:deep] 39: 40: initial_paths.each {|path| walk(path)} 41: end
Lists all of the states that can be transitioned from through the paths in this collection.
For example,
paths.from_states # => [:parked, :idling, :first_gear, ...]
# File lib/state_machine/path_collection.rb, line 49 49: def from_states 50: map {|path| path.from_states}.flatten.uniq 51: end