module RailsSemanticLogger
Constants
- VERSION
Public Class Methods
swap_subscriber(old_class, new_class, notifier)
click to toggle source
Swap an existing subscriber with a new one
# File lib/rails_semantic_logger.rb, line 43 def self.swap_subscriber(old_class, new_class, notifier) subscribers = ActiveSupport::LogSubscriber.subscribers.select { |s| s.is_a?(old_class) } subscribers.each { |subscriber| unattach(subscriber) } new_class.attach_to(notifier) end
Private Class Methods
subscriber_patterns(subscriber)
click to toggle source
# File lib/rails_semantic_logger.rb, line 62 def self.subscriber_patterns(subscriber) if subscriber.patterns.respond_to?(:keys) subscriber.patterns.keys else subscriber.patterns end end
unattach(subscriber)
click to toggle source
# File lib/rails_semantic_logger.rb, line 50 def self.unattach(subscriber) subscriber_patterns(subscriber).each do |pattern| ActiveSupport::Notifications.notifier.listeners_for(pattern).each do |sub| next unless sub.instance_variable_get(:@delegate) == subscriber ActiveSupport::Notifications.unsubscribe(sub) end end ActiveSupport::LogSubscriber.subscribers.delete(subscriber) end