class EventManager

Core of the event managing system, this class stores listener and call them on event triggering.

Public Class Methods

new() click to toggle source
# File lib/gimuby/event/event_manager.rb, line 7
def initialize
  @listeners_registry = {} #contains array
end

Public Instance Methods

register_listener(name, &block) click to toggle source

@param name {String} The event name @param block {Block} The callback that will be call @api

# File lib/gimuby/event/event_manager.rb, line 14
def register_listener(name, &block)
  unless @listeners_registry.has_key? name
    @listeners_registry[name] = []
  end
  @listeners_registry[name].push block
end
trigger_event(name, event = {}) click to toggle source

@param name {String} The event name @param event {Event} The event object

# File lib/gimuby/event/event_manager.rb, line 23
def trigger_event(name, event = {})
  if @listeners_registry.has_key? name
    if event.class == Hash
      event = Event.new(name, event)
    end
    listeners = @listeners_registry[name]
    listeners.each do |block|
      block.call event
    end
  end
end