module Faye::WebSocket::API::EventTarget
Public Instance Methods
add_event_listener(event_type, listener, use_capture = false)
click to toggle source
# File lib/faye/websocket/api/event_target.rb, line 16 def add_event_listener(event_type, listener, use_capture = false) add_listener(event_type, &listener) end
add_listener(event_type, &listener)
click to toggle source
Calls superclass method
# File lib/faye/websocket/api/event_target.rb, line 20 def add_listener(event_type, &listener) EventMachine.next_tick do flush(event_type, &listener) super(event_type, &listener) end end
dispatch_event(event)
click to toggle source
# File lib/faye/websocket/api/event_target.rb, line 31 def dispatch_event(event) event.target = event.current_target = self event.event_phase = Event::AT_TARGET callback = instance_variable_get("@on#{ event.type }") count = listener_count(event.type) unless callback or count > 0 @buffers ||= Hash.new { |k,v| k[v] = [] } @buffers[event.type].push(event) end callback.call(event) if callback emit(event.type, event) end
remove_event_listener(event_type, listener, use_capture = false)
click to toggle source
# File lib/faye/websocket/api/event_target.rb, line 27 def remove_event_listener(event_type, listener, use_capture = false) remove_listener(event_type, &listener) end
Private Instance Methods
flush(event_type, &callback)
click to toggle source
# File lib/faye/websocket/api/event_target.rb, line 49 def flush(event_type, &callback) if buffer = @buffers && @buffers.delete(event_type.to_s) buffer.each { |event| callback.call(event) } end end