Class: Statsd::MessageDispatchDaemon
- Inherits:
-
EventMachine::Connection
- Object
- EventMachine::Connection
- Statsd::MessageDispatchDaemon
- Defined in:
- lib/statsd/daemon.rb
Constant Summary collapse
- @@receivers =
Methods to be called when a statsd message comes in.
[]
Class Method Summary collapse
- .receivers ⇒ Object
- .receivers=(list) ⇒ Object
-
.register_receiver(mod) ⇒ Object
Register a Module implementing an EventMachine::Connection -like interface.
Instance Method Summary collapse
Class Method Details
.receivers ⇒ Object
28 29 30 |
# File 'lib/statsd/daemon.rb', line 28 def self.receivers @@receivers end |
.receivers=(list) ⇒ Object
24 25 26 27 |
# File 'lib/statsd/daemon.rb', line 24 def self.receivers=(list) raise ArgumentError unless list.is_a?(Array) @@receivers = list end |
.register_receiver(mod) ⇒ Object
Register a Module implementing an EventMachine::Connection -like interface.
receive_data methods on all registered modules will get called, but for any other EM::Connection methods, the last registered module/method will take precedence.
15 16 17 18 19 20 21 22 23 |
# File 'lib/statsd/daemon.rb', line 15 def self.register_receiver(mod) begin method = mod.method('receive_data') @@receivers << method unless @@receivers.include?(method) rescue NameError raise ArgumentError.new("The passed module #{mod} doesn't implement a receive_data method.") end include mod end |
Instance Method Details
#receive_data(msg) ⇒ Object
31 32 33 34 35 |
# File 'lib/statsd/daemon.rb', line 31 def receive_data(msg) @@receivers.each do |method| method.call(msg) end end |