Module: AASM::ClassMethods
- Defined in:
- lib/aasm.rb
Instance Method Summary collapse
- #aasm_event(name, options = {}, &block) ⇒ Object
- #aasm_events ⇒ Object
- #aasm_initial_state(set_state = nil) ⇒ Object
- #aasm_initial_state=(state) ⇒ Object
- #aasm_state(name, options = {}) ⇒ Object
- #aasm_states ⇒ Object
- #aasm_states_for_select ⇒ Object
- #inherited(klass) ⇒ Object
Instance Method Details
#aasm_event(name, options = {}, &block) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/aasm.rb', line 51 def aasm_event(name, = {}, &block) sm = AASM::StateMachine[self] unless sm.events.has_key?(name) sm.events[name] = AASM::SupportingClasses::Event.new(name, , &block) end define_method("#{name.to_s}!") do |*args| aasm_fire_event(name, true, *args) end define_method("#{name.to_s}") do |*args| aasm_fire_event(name, false, *args) end end |
#aasm_events ⇒ Object
71 72 73 |
# File 'lib/aasm.rb', line 71 def aasm_events AASM::StateMachine[self].events end |
#aasm_initial_state(set_state = nil) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/aasm.rb', line 29 def aasm_initial_state(set_state=nil) if set_state AASM::StateMachine[self].initial_state = set_state else AASM::StateMachine[self].initial_state end end |
#aasm_initial_state=(state) ⇒ Object
37 38 39 |
# File 'lib/aasm.rb', line 37 def aasm_initial_state=(state) AASM::StateMachine[self].initial_state = state end |
#aasm_state(name, options = {}) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/aasm.rb', line 41 def aasm_state(name, ={}) sm = AASM::StateMachine[self] sm.create_state(name, ) sm.initial_state = name unless sm.initial_state define_method("#{name.to_s}?") do aasm_current_state == name end end |
#aasm_states ⇒ Object
67 68 69 |
# File 'lib/aasm.rb', line 67 def aasm_states AASM::StateMachine[self].states end |
#aasm_states_for_select ⇒ Object
75 76 77 |
# File 'lib/aasm.rb', line 75 def aasm_states_for_select AASM::StateMachine[self].states.map { |state| state.for_select } end |
#inherited(klass) ⇒ Object
24 25 26 27 |
# File 'lib/aasm.rb', line 24 def inherited(klass) AASM::StateMachine[klass] = AASM::StateMachine[self].clone super end |