81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'activesupport/lib/active_support/notifications/fanout.rb', line 81
def unsubscribe(subscriber_or_name)
@mutex.synchronize do
case subscriber_or_name
when String
@string_subscribers[subscriber_or_name].clear
clear_cache(subscriber_or_name)
@other_subscribers.each { |sub| sub.unsubscribe!(subscriber_or_name) }
else
pattern = subscriber_or_name.try(:pattern)
if String === pattern
@string_subscribers[pattern].delete(subscriber_or_name)
clear_cache(pattern)
else
@other_subscribers.delete(subscriber_or_name)
clear_cache
end
end
end
end
|