Class: EventManager
- Inherits:
-
Object
- Object
- EventManager
- 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
-
#initialize ⇒ EventManager
constructor
A new instance of EventManager.
- #register_listener(name, &block) ⇒ Object
- #trigger_event(name, event = {}) ⇒ Object
Constructor Details
#initialize ⇒ EventManager
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
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
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 |