Method: AASM::ClassMethods#aasm_event

Defined in:
lib/aasm/aasm.rb

#aasm_event(name, options = {}, &block) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/aasm/aasm.rb', line 53

def aasm_event(name, options = {}, &block)
  sm = AASM::StateMachine[self]

  unless sm.events.has_key?(name)
    sm.events[name] = AASM::SupportingClasses::Event.new(name, options, &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