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