class ActiveMonitoring::Notifier
Attributes
subscribers[R]
Public Class Methods
new()
click to toggle source
# File lib/active_monitoring/notifier.rb, line 3 def initialize @subscribers = {} end
Public Instance Methods
instrument(name, payload) { || ... }
click to toggle source
# File lib/active_monitoring/notifier.rb, line 12 def instrument(name, payload) id = SecureRandom.hex(10) start = Time.current result = yield if block_given? finish = Time.current subscribers_for(name).each do |callback| callback.call(name, start, finish, id, payload) end result end
subscribe(name, &block)
click to toggle source
# File lib/active_monitoring/notifier.rb, line 7 def subscribe(name, &block) subscribers[name] ||= [] subscribers[name] << block end
Private Instance Methods
subscribers_for(name)
click to toggle source
# File lib/active_monitoring/notifier.rb, line 29 def subscribers_for(name) subscribers[name].to_a end