class SimpleEvents::Notifier
Attributes
runaway_threshold[RW]
Public Class Methods
logger()
click to toggle source
# File lib/simple_events/notifier.rb, line 44 def self.logger @@logger ||= ::Logger.new($stdout) end
logger=(new_logger)
click to toggle source
# File lib/simple_events/notifier.rb, line 48 def self.logger=(new_logger) @@logger = new_logger end
new()
click to toggle source
# File lib/simple_events/notifier.rb, line 10 def initialize @events = {} @runaway_threshold = 100 end
Public Instance Methods
check_for_runaway_subscriptions(event)
click to toggle source
# File lib/simple_events/notifier.rb, line 21 def check_for_runaway_subscriptions(event) count = @events[event].size logger.debug("Run-away event subscription on #{event}? Subscribed #{count}") if count > @runaway_threshold end
clear()
click to toggle source
# File lib/simple_events/notifier.rb, line 26 def clear @events.clear end
logger()
click to toggle source
# File lib/simple_events/notifier.rb, line 52 def logger self.class.logger end
logger=(new_logger)
click to toggle source
# File lib/simple_events/notifier.rb, line 56 def logger=(new_logger) self.class.logger = new_logger end
notify(event, *args)
click to toggle source
# File lib/simple_events/notifier.rb, line 30 def notify(event, *args) return unless @events.has_key?(event) @events[event].each do |handler| begin handler.call(*args) rescue => err logger.debug("Failure during notify for #{@event}\n#{err.class} #{err.message}") end end end
subscribe(event, &handler)
click to toggle source
# File lib/simple_events/notifier.rb, line 15 def subscribe(event, &handler) @events[event] ||= [] @events[event] << handler check_for_runaway_subscriptions(event) end