class Faulty::Events::Notifier
The default event dispatcher for Faulty
Public Class Methods
new(listeners = [])
click to toggle source
@param listeners [Array<ListenerInterface>] An array of event listeners
# File lib/faulty/events/notifier.rb, line 8 def initialize(listeners = []) @listeners = listeners.freeze end
Public Instance Methods
notify(event, payload)
click to toggle source
Notify all listeners of an event
If a listener raises an error while handling an event, that error will be captured and written to STDERR.
@param event [Symbol] The event name @param payload [Hash] A hash of event payload data. The payload keys
differ between events, but should be consistent across calls for a single event
# File lib/faulty/events/notifier.rb, line 21 def notify(event, payload) raise ArgumentError, "Unknown event #{event}" unless EVENTS.include?(event) @listeners.each do |listener| begin listener.handle(event, payload) rescue StandardError => e warn "Faulty listener #{listener.class.name} crashed: #{e.message}" end end end