Module: Client::Listenable
- Included in:
- ModularHandler, TCP::Client
- Defined in:
- lib/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
227 228 229 230 231 |
# File 'lib/client.rb', line 227 def add_listener(*listener) listeners.addAll(listener) ensure log.trace "Listeners: #{listeners}" end |
#listeners ⇒ Object
223 224 225 |
# File 'lib/client.rb', line 223 def listeners @listeners ||= java.util.concurrent.CopyOnWriteArrayList.new end |
#notify(event, *args) ⇒ Object
242 243 244 245 246 247 248 |
# File 'lib/client.rb', line 242 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
233 234 235 |
# File 'lib/client.rb', line 233 def remove_listener(*listener) listeners.removeAll(listener) end |
#replace_listeners(*listener) ⇒ Object
237 238 239 240 |
# File 'lib/client.rb', line 237 def replace_listeners(*listener) listeners.clear add_listener(*listener) end |