module ActiveSupport::Notifications::Fanout::Subscribers
def self.new(pattern, listener)
def self.new(pattern, listener) subscriber_class = Timed if listener.respond_to?(:start) && listener.respond_to?(:finish) subscriber_class = Evented else # Doing all this to detect a block like `proc { |x| }` vs # `proc { |*x| }` or `proc { |**x| }` if listener.respond_to?(:parameters) params = listener.parameters if params.length == 1 && params.first.first == :opt subscriber_class = EventObject end end end wrap_all pattern, subscriber_class.new(pattern, listener) end