Class: Whatsapp::Events
- Inherits:
-
Object
- Object
- Whatsapp::Events
- Defined in:
- lib/whatsapp/events.rb
Overview
Instance Method Summary collapse
-
#clear! ⇒ void
Remove all registered handlers.
-
#emit(event_name, data = nil) ⇒ void
Emit an event, calling all registered handlers.
-
#initialize ⇒ Events
constructor
A new instance of Events.
-
#listeners(event_name) ⇒ Array<Proc>
List all handlers for an event.
-
#off(event_name) {|data| ... } ⇒ void
Remove a specific handler, or all handlers for an event.
-
#on(event_name) {|data| ... } ⇒ void
Register a handler for an event.
Constructor Details
#initialize ⇒ Events
Returns a new instance of Events.
13 14 15 |
# File 'lib/whatsapp/events.rb', line 13 def initialize @handlers = Hash.new { |h, k| h[k] = [] } end |
Instance Method Details
#clear! ⇒ void
This method returns an undefined value.
Remove all registered handlers.
60 61 62 |
# File 'lib/whatsapp/events.rb', line 60 def clear! @handlers.clear end |
#emit(event_name, data = nil) ⇒ void
This method returns an undefined value.
Emit an event, calling all registered handlers.
45 46 47 |
# File 'lib/whatsapp/events.rb', line 45 def emit(event_name, data = nil) @handlers[event_name.to_s].each { |handler| handler.call(data) } end |
#listeners(event_name) ⇒ Array<Proc>
List all handlers for an event.
53 54 55 |
# File 'lib/whatsapp/events.rb', line 53 def listeners(event_name) @handlers[event_name.to_s].dup end |
#off(event_name) {|data| ... } ⇒ void
This method returns an undefined value.
Remove a specific handler, or all handlers for an event.
32 33 34 35 36 37 38 |
# File 'lib/whatsapp/events.rb', line 32 def off(event_name, &block) if block @handlers[event_name.to_s].delete(block) else @handlers.delete(event_name.to_s) end end |
#on(event_name) {|data| ... } ⇒ void
This method returns an undefined value.
Register a handler for an event.
23 24 25 |
# File 'lib/whatsapp/events.rb', line 23 def on(event_name, &block) @handlers[event_name.to_s] << block end |