module TrRMIte::EventHandling::DSL::ClassMethods

Public Instance Methods

handle(*event_types, &handler) click to toggle source
# File lib/TrRMIte/event_handling.rb, line 13
def handle(*event_types, &handler)
  raise ArgumentError, "missing event handler" unless handler
  @event_handlers ||= begin
                        handlers = {}
                        def handlers.for(event)
                          self[TrRMIte.inflect(event.type, :to_sym)]
                        end
                        handlers
                      end

  event_types.each do |event_type|
    @event_handlers[event_type] = handler
  end
end
handler_for(event) click to toggle source
# File lib/TrRMIte/event_handling.rb, line 28
def handler_for(event)
  @event_handlers ? @event_handlers.for(event) : nil
end
handles?(event) click to toggle source
# File lib/TrRMIte/event_handling.rb, line 32
def handles?(event)
  !handler_for(event).nil?
end