Class: EventManager

Inherits:
Object
  • Object
show all
Defined in:
lib/gimuby/event/event_manager.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initializeEventManager

Returns a new instance of EventManager.



7
8
9
# File 'lib/gimuby/event/event_manager.rb', line 7

def initialize
  @listeners_registry = {} #contains array
end

Instance Method Details

#register_listener(name, &block) ⇒ Object

Parameters:

  • name (String)

    The event name

  • block (Block)

    The callback that will be call



14
15
16
17
18
19
# 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 = {}) ⇒ Object

Parameters:

  • name (String)

    The event name

  • event (Event) (defaults to: {})

    The event object



23
24
25
26
27
28
29
30
31
32
33
# 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