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