Module: ActiveSupport::Notifications::Fanout::Subscribers
Do not use. This module is for internal use only.
Relationships & Source Files | |
Namespace Children | |
Classes:
| |
Defined in: | activesupport/lib/active_support/notifications/fanout.rb |
Class Method Summary
Class Method Details
.new(pattern, listener, monotonic)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/fanout.rb', line 319
def self.new(pattern, listener, monotonic) subscriber_class = monotonic ? MonotonicTimed : Timed if listener.respond_to?(:start) && listener.respond_to?(:finish) subscriber_class = Evented else # Doing this to detect a single argument block or callable # like `proc { |x| }` vs `proc { |*x| }`, `proc { |**x| }`, # or `proc { |x, **y| }` procish = listener.respond_to?(:parameters) ? listener : listener.method(:call) if procish.arity == 1 && procish.parameters.length == 1 subscriber_class = EventObject end end subscriber_class.new(pattern, listener) end