Module: WebSocket::Listenable

Includes:
Server::Listenable
Included in:
Client, ClientChannelHandler
Defined in:
lib/websocket_client.rb,
lib/websocket/listenable.rb

Overview

The Listenable module

Instance Method Summary collapse

Instance Method Details

#add_listener(*listener) ⇒ Object



263
264
265
266
267
# File 'lib/websocket_client.rb', line 263

def add_listener(*listener)
  listeners.addAll(listener)
ensure
  log.trace "Listeners: #{listeners}"
end

#listenersObject



259
260
261
# File 'lib/websocket_client.rb', line 259

def listeners
  @listeners ||= java.util.concurrent.CopyOnWriteArrayList.new
end

#notify(event, *args) ⇒ Object



278
279
280
281
282
283
284
# File 'lib/websocket_client.rb', line 278

def notify(event, *args)
  listeners.each do |listener|
    next unless listener.respond_to?(event.to_sym)
    log.trace "Notifying listener #{listener} of event: #{event}"
    listener.send(event.to_sym, *args)
  end
end

#remove_listener(*listener) ⇒ Object



269
270
271
# File 'lib/websocket_client.rb', line 269

def remove_listener(*listener)
  listeners.removeAll(listener)
end

#replace_listeners(*listener) ⇒ Object



273
274
275
276
# File 'lib/websocket_client.rb', line 273

def replace_listeners(*listener)
  listeners.clear
  add_listener(*listener)
end