| 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