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
- #add_listener(*listener) ⇒ Object
- #listeners ⇒ Object
- #notify(event, *args) ⇒ Object
- #remove_listener(*listener) ⇒ Object
- #replace_listeners(*listener) ⇒ Object
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 |
#listeners ⇒ Object
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 |