Module: StateMachine::ClassMethods

Defined in:
lib/state_machine/extensions.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object

:nodoc:



3
4
5
6
7
# File 'lib/state_machine/extensions.rb', line 3

def self.extended(base) #:nodoc:
  base.class_eval do
    @state_machines = {}
  end
end

Instance Method Details

#state_machinesObject

Gets the current list of state machines defined for this class. This class-level attribute acts like an inheritable attribute. The attribute is available to each subclass, each subclass having a copy of its superclass’s attribute.

The hash of state machines maps attribute => machine, e.g.

Vehicle.state_machines # => {:state => #<StateMachine::Machine:0xb6f6e4a4 ...>


17
18
19
# File 'lib/state_machine/extensions.rb', line 17

def state_machines
  @state_machines ||= superclass.state_machines.dup
end