module ExMachina::Machine::ClassMethods

Public Instance Methods

events() click to toggle source
# File lib/ex_machina/machine.rb, line 9
def events
  @events ||= []
end
has_events(*event_classes) click to toggle source
# 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