module Reorm::EventSource

A module that is used to provide the methods the create events.

Public Class Methods

included(target) click to toggle source
# File lib/reorm/modules/event_modules.rb, line 94
def EventSource.included(target)
  target.extend(EventSource)
end

Public Instance Methods

fire_events(settings={}) click to toggle source
# File lib/reorm/modules/event_modules.rb, line 74
def fire_events(settings={})
  events = settings[:events]
  if events && !events.empty?
    object   = (settings[:target] ? settings[:target] : self)
    handlers = @@class_events[self.instance_of?(Class) ? self : self.class]
    if handlers && !handlers.empty?
      events.each do |event|
        if handlers.include?(event)
          handlers[event].each do |handler|
            if !object.respond_to?(handler, true)
              raise Error, "Unable to locate a method called '#{handler}' for an instance of the #{object.class.name} class."
            end
            object.__send__(handler)
          end
        end
      end
    end
  end
end