module RestashRails::LogsUnsubscriber
Public Instance Methods
disable_additional_logs()
click to toggle source
# File lib/restash_rails/logs_unsubscriber.rb, line 9 def disable_additional_logs remove_start_get_lines disable_rack_cache_verbose_output(Rails.application) if defined?(Rails) ::ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber| case subscriber.class.name when 'ActionView::LogSubscriber' unsubscribe(:action_view, subscriber) when 'ActionController::LogSubscriber' unsubscribe(:action_controller, subscriber) when 'ActionMailer::LogSubscriber' unsubscribe(:action_mailer, subscriber) when 'ActiveRecord::LogSubscriber' unsubscribe(:active_record, subscriber) end end end
Private Instance Methods
disable_rack_cache_verbose_output(app)
click to toggle source
# File lib/restash_rails/logs_unsubscriber.rb, line 43 def disable_rack_cache_verbose_output(app) app.config.action_dispatch.rack_cache[:verbose] = false if rack_cache_hashlike?(app) end
rack_cache_hashlike?(app)
click to toggle source
# File lib/restash_rails/logs_unsubscriber.rb, line 39 def rack_cache_hashlike?(app) app.config.action_dispatch.rack_cache && app.config.action_dispatch.rack_cache.respond_to?(:[]=) end
remove_start_get_lines()
click to toggle source
# File lib/restash_rails/logs_unsubscriber.rb, line 47 def remove_start_get_lines require 'restash_rails/rails_ext/rack/logger' end
unsubscribe(component, subscriber)
click to toggle source
# File lib/restash_rails/logs_unsubscriber.rb, line 28 def unsubscribe(component, subscriber) events = subscriber.public_methods(false).reject { |method| method.to_s == 'call' } events.each do |event| ::ActiveSupport::Notifications.notifier.listeners_for("#{event}.#{component}").each do |listener| if listener.instance_variable_get('@delegate') == subscriber ::ActiveSupport::Notifications.unsubscribe listener end end end end