Class: Appcelerator::InmemoryServiceBroker
- Inherits:
-
Object
- Object
- Appcelerator::InmemoryServiceBroker
- Includes:
- Singleton
- Defined in:
- lib/appcelerator/servicebroker/inmemory_service_broker.rb
Instance Method Summary collapse
- #clear_listeners ⇒ Object
- #diagnostics ⇒ Object
-
#initialize ⇒ InmemoryServiceBroker
constructor
A new instance of InmemoryServiceBroker.
- #register_listener(msgtype, listener) ⇒ Object
- #send(msg) ⇒ Object
- #unregister_listener(msgtype, listener) ⇒ Object
Constructor Details
#initialize ⇒ InmemoryServiceBroker
Returns a new instance of InmemoryServiceBroker.
11 12 13 |
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 11 def initialize @listeners={} end |
Instance Method Details
#clear_listeners ⇒ Object
28 29 30 |
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 28 def clear_listeners @listeners.clear end |
#diagnostics ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 45 def diagnostics all = [] @listeners.each do |k,v| v.each do |proc| all << proc.to_s end end all.join "\n" end |
#register_listener(msgtype, listener) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 15 def register_listener(msgtype,listener) begin @listeners[msgtype] << listener rescue @listeners[msgtype] = LastInSet.new << listener end end |
#send(msg) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 32 def send(msg) begin array = @listeners[msg.] || [] array.map do |listener| listener.call(msg.clone) end rescue => error puts $! raise error end end |
#unregister_listener(msgtype, listener) ⇒ Object
23 24 25 26 |
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 23 def unregister_listener(msgtype,listener) array = @listeners[msgtype] array.delete_if { |a| a == listener } if array end |