Module: Acts::As::Multiple::StateMachines::ActMacro
- Defined in:
- lib/acts/as/multiple/state_machines/active_record_extension.rb
Defined Under Namespace
Modules: ClassMethods, InstanceMethods
Instance Method Summary collapse
-
#acts_as_state_machine(options = {}, &block) ⇒ Object
Configuration options are.
Instance Method Details
#acts_as_state_machine(options = {}, &block) ⇒ Object
Configuration options are
-
column- specifies the column name to use for keeping the state (default: state) -
initial- specifies an initial state for newly created objects (required)
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/acts/as/multiple/state_machines/active_record_extension.rb', line 14 def acts_as_state_machine( = {}, &block) class_eval do extend ClassMethods include InstanceMethods # make sure only does it once... unless respond_to?(:state_machine_classes) write_inheritable_attribute :state_machine_classes, {} class_inheritable_reader :state_machine_classes before_create :set_initial_state after_create :run_initial_state_actions end name = .delete(:name) || 'default' name = name.to_sym raise DuplicateStateMachine unless state_machine_classes[name].nil? state_machine_classes[name] = SupportingClasses::StateMachineFactory.build(name, self, , &block) end end |