module WebSocket::Driver::EventEmitter

Public Class Methods

new() click to toggle source
# File lib/websocket/driver/event_emitter.rb, line 5
def initialize
  @listeners = Hash.new { |h,k| h[k] = [] }
end

Public Instance Methods

add_listener(event, &listener) click to toggle source
# File lib/websocket/driver/event_emitter.rb, line 9
def add_listener(event, &listener)
  @listeners[event.to_s] << listener
end
emit(event, *args) click to toggle source
# File lib/websocket/driver/event_emitter.rb, line 29
def emit(event, *args)
  @listeners[event.to_s].dup.each do |listener|
    listener.call(*args)
  end
end
listener_count(event) click to toggle source
# File lib/websocket/driver/event_emitter.rb, line 35
def listener_count(event)
  return 0 unless @listeners.has_key?(event.to_s)
  @listeners[event.to_s].size
end
listeners(event) click to toggle source
# File lib/websocket/driver/event_emitter.rb, line 40
def listeners(event)
  @listeners[event.to_s]
end
on(event, &listener) click to toggle source
# File lib/websocket/driver/event_emitter.rb, line 13
def on(event, &listener)
  add_listener(event, &listener)
end
remove_all_listeners(event = nil) click to toggle source
# File lib/websocket/driver/event_emitter.rb, line 21
def remove_all_listeners(event = nil)
  if event
    @listeners.delete(event.to_s)
  else
    @listeners.clear
  end
end
remove_listener(event, &listener) click to toggle source
# File lib/websocket/driver/event_emitter.rb, line 17
def remove_listener(event, &listener)
  @listeners[event.to_s].delete(listener)
end