module Loggerator::Railtie::Helper
Public Instance Methods
detach_existing_subscribers()
click to toggle source
# File lib/loggerator/railtie/helper.rb, line 15 def detach_existing_subscribers ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber| case subscriber when ActionView::LogSubscriber unsubscribe(:action_view, subscriber) when ActionController::LogSubscriber unsubscribe(:action_controller, subscriber) end end end
events_for_subscriber(subscriber)
click to toggle source
# File lib/loggerator/railtie/helper.rb, line 43 def events_for_subscriber(subscriber) subscriber.public_methods(false).reject {|method| method.to_s == 'call' } end
setup(_app)
click to toggle source
# File lib/loggerator/railtie/helper.rb, line 8 def setup(_app) return unless subscribe? detach_existing_subscribers Loggerator::Railtie::LogSubscriber.attach_to(:action_controller) end
subscribe?()
click to toggle source
# File lib/loggerator/railtie/helper.rb, line 26 def subscribe? !Loggerator.config.rails_default_subscribers end
unsubscribe(component, subscriber)
click to toggle source
# File lib/loggerator/railtie/helper.rb, line 30 def unsubscribe(component, subscriber) events = events_for_subscriber(subscriber) events.each do |event| notifier = ActiveSupport::Notifications.notifier notifier.listeners_for("#{event}.#{component}").each do |listener| if listener.instance_variable_get('@delegate') == subscriber ActiveSupport::Notifications.unsubscribe(listener) end end end end