module ROM::Notifications::Publisher

Extension used for classes that can trigger events

@api public

Public Instance Methods

subscribe(event_id, query = EMPTY_HASH, &block) click to toggle source

Subscribe to events. If the query parameter is provided, filters events by payload.

@param [String] event_id The event key @param [Hash] query An optional event filter @yield [block] The callback @return [Object] self

@api public

# File lib/rom/support/notifications.rb, line 56
def subscribe(event_id, query = EMPTY_HASH, &block)
  listeners[event_id] << [block, query]
  self
end
trigger(event_id, payload = EMPTY_HASH) click to toggle source

Trigger an event

@param [String] event_id The event key @param [Hash] payload An optional payload

@api public

# File lib/rom/support/notifications.rb, line 67
def trigger(event_id, payload = EMPTY_HASH)
  event = events[event_id]

  listeners[event.id].each do |(listener, query)|
    event.payload(payload).trigger(listener, query)
  end
end