module Faye::WebSocket::API::EventTarget

def add_event_listener(event_type, listener, use_capture = false)

def add_event_listener(event_type, listener, use_capture = false)
  @listeners ||= {}
  list = @listeners[event_type] ||= []
  list << listener
end

def dispatch_event(event)

def dispatch_event(event)
  event.target = event.current_target = self
  event.event_phase = Event::AT_TARGET
  
  callback = __send__("on#{ event.type }")
  callback.call(event) if callback
  
  return unless @listeners and @listeners[event.type]
  @listeners[event.type].each do |listener|
    listener.call(event)
  end
end

def remove_event_listener(event_type, listener, use_capture = false)

def remove_event_listener(event_type, listener, use_capture = false)
  return unless @listeners and @listeners[event_type]
  return @listeners.delete(event_type) unless listener
  
  @listeners[event_type].delete_if(&listener.method(:==))
end