Sha256: c1a56e2ea0888cafd4168be64a3c59c53a29b6e88284b74e22ffd89f871ded71

Contents?: true

Size: 953 Bytes

Versions: 12

Compression:

Stored size: 953 Bytes

Contents

module Faye::WebSocket::API
  module EventTarget
    
    attr_accessor :onopen, :onmessage, :onerror, :onclose
    
    def add_event_listener(event_type, listener, use_capture = false)
      @listeners ||= {}
      list = @listeners[event_type] ||= []
      list << listener
    end
    
    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
    
    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
    
  end
end

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
faye-websocket-0.4.6-java lib/faye/websocket/api/event_target.rb
faye-websocket-0.4.6 lib/faye/websocket/api/event_target.rb
faye-websocket-0.4.5-java lib/faye/websocket/api/event_target.rb
faye-websocket-0.4.5 lib/faye/websocket/api/event_target.rb
_bushido-faye-websocket-0.4.4 lib/faye/websocket/api/event_target.rb
faye-websocket-0.4.4-java lib/faye/websocket/api/event_target.rb
faye-websocket-0.4.4 lib/faye/websocket/api/event_target.rb
faye-websocket-0.4.3 lib/faye/websocket/api/event_target.rb
faye-websocket-0.4.2 lib/faye/websocket/api/event_target.rb
faye-websocket-0.4.1 lib/faye/websocket/api/event_target.rb
faye-websocket-0.4.0 lib/faye/websocket/api/event_target.rb
faye-websocket-0.3.0 lib/faye/websocket/api/event_target.rb