Module: ExMachina::Machine::ClassMethods

Defined in:
lib/ex_machina/machine.rb

Instance Method Summary collapse

Instance Method Details

#eventsObject



9
10
11
# File 'lib/ex_machina/machine.rb', line 9

def events
  @events ||= []
end

#has_events(*event_classes) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ex_machina/machine.rb', line 12

def has_events(*event_classes)
  event_classes.each do |event_class|
    events << event_class

    define_method "#{event_class.event}" do
      event_class.fire(self)
    end
    define_method "#{event_class.event}!" do
      event_class.fire!(self)
    end
    define_method "can_#{event_class.event}?" do
      event_class.can_fire?(self)
    end
    events << event_class
  end
end