instance method
subscribe
Ruby on Rails edge
Since v3.0.20Signature
subscribe(pattern = nil, callable = nil, monotonic: false, prepend: false, &block)
No documentation comment.
Parameters
-
patternopt = nil -
callableopt = nil -
monotonickey = false -
prependkey = false -
blockblock
Source
# File activesupport/lib/active_support/notifications/fanout.rb, line 85
def subscribe(pattern = nil, callable = nil, monotonic: false, prepend: false, &block)
block = ActiveSupport::Ractors.try_shareable_proc(block) if block
subscriber = Subscribers.new(pattern, callable || block, monotonic)
@mutex.synchronize do
case pattern
when String
if prepend
@string_subscribers[pattern].unshift(subscriber)
else
@string_subscribers[pattern] << subscriber
end
clear_cache(pattern)
when NilClass, Regexp
if prepend
raise ArgumentError, "Cannot prepend Regex subscribers"
end
@other_subscribers << subscriber
clear_cache
else
raise ArgumentError, "pattern must be specified as a String, Regexp or empty"
end
end
subscriber
end
Defined in activesupport/lib/active_support/notifications/fanout.rb line 85
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveSupport::Notifications::Fanout