7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/log_sanity/extensions/active_support_subscriber.rb', line 7
def detach_from(namespace, notifier=ActiveSupport::Notifications)
subscribers.select{|s| s.is_a? self}.each do |subscriber|
subscriber.public_methods(false).each do |event|
pattern = "#{event}.#{namespace}"
notifier.notifier.listeners_for(pattern).each do |listener|
if listener.instance_variable_get(:@delegate) == subscriber
notifier.unsubscribe listener
subscriber.patterns.delete pattern
end
end
end
subscribers.delete subscriber if subscriber.patterns.empty?
end
end
|