Methods
Attributes
| [R] | name |
Public Class methods
[ show source ]
# File lib/event.rb, line 8
8: def initialize(name, &block)
9: @name = name
10: @transitions = []
11: instance_eval(&block) if block
12: end
Public Instance methods
[ show source ]
# File lib/event.rb, line 14
14: def fire(obj)
15: transitions = @transitions.select { |t| t.from == obj.aasm_current_state }
16: raise AASM::InvalidTransition if transitions.size == 0
17:
18: next_state = nil
19: transitions.each do |transition|
20: if transition.perform(obj)
21: next_state = transition.to
22: break
23: end
24: end
25: next_state
26: end
[ show source ]
# File lib/event.rb, line 28
28: def transitions_from_state?(state)
29: @transitions.any? { |t| t.from == state }
30: end