class Dry::Monitor::Notifications
def initialize(id, clock: CLOCK)
def initialize(id, clock: CLOCK) @id = id @clock = clock end
def instrument(event_id, payload = EMPTY_HASH, &block)
def instrument(event_id, payload = EMPTY_HASH, &block) result, time = @clock.measure(&block) if block_given? process(event_id, payload) do |event, listener| if time listener.(event.payload(payload.merge(time: time))) else listener.(event) end end result end
def start(event_id, payload)
def start(event_id, payload) instrument(event_id, payload) end
def stop(event_id, payload)
def stop(event_id, payload) instrument(event_id, payload) end