Module: Client::Listenable
- Included in:
- ModularHandler, TCP::Client
- Defined in:
- lib/tcp_server/client.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
236 237 238 |
# File 'lib/tcp_server/client.rb', line 236 def add_listener(*listener) listeners.addAll(listener) end |
#listeners ⇒ Object
232 233 234 |
# File 'lib/tcp_server/client.rb', line 232 def listeners @listeners ||= CopyOnWriteArrayList.new end |
#notify(event, *args) ⇒ Object
251 252 253 254 255 256 257 |
# File 'lib/tcp_server/client.rb', line 251 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
240 241 242 |
# File 'lib/tcp_server/client.rb', line 240 def remove_listener(*listener) listeners.removeAll(listener) end |
#replace_listeners(*listener) ⇒ Object
244 245 246 247 248 249 |
# File 'lib/tcp_server/client.rb', line 244 def replace_listeners(*listener) listeners.clear add_listener(*listener) ensure log.trace "##{__method__} listeners: #{listeners}" end |