Class: ActiveMonitoring::Notifier

Inherits:
Object
  • Object
show all
Defined in:
lib/active_monitoring/notifier.rb

Instance Method Summary collapse

Constructor Details

#initializeNotifier

Returns a new instance of Notifier.



3
4
5
# File 'lib/active_monitoring/notifier.rb', line 3

def initialize
  @subscribers = {}
end

Instance Method Details

#instrument(name, payload) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# 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) ⇒ Object



7
8
9
10
# File 'lib/active_monitoring/notifier.rb', line 7

def subscribe(name, &block)
  subscribers[name] ||= []
  subscribers[name] << block
end