module Bugsnag::Rails::ControllerMethods::ClassMethods

Private Instance Methods

_add_bugsnag_notify_callback(callback_key, *methods, &block) click to toggle source
# File lib/bugsnag/integrations/rails/controller_methods.rb, line 14
def _add_bugsnag_notify_callback(callback_key, *methods, &block)
  options = methods.last.is_a?(Hash) ? methods.pop : {}

  action = lambda do |controller|
    request_data = Bugsnag.configuration.request_data
    request_data[callback_key] ||= []

    # Set up "method symbol" callbacks
    methods.each do |method_symbol|
      request_data[callback_key] << lambda { |notification|
        controller.send(method_symbol, notification)
      }
    end

    # Set up "block" callbacks
    request_data[callback_key] << lambda { |notification|
      controller.instance_exec(notification, &block)
    } if block_given?
  end
  if respond_to?(:before_action)
    before_action(options, &action)
  else
    before_filter(options, &action)
  end
end
before_bugsnag_notify(*methods, &block) click to toggle source
# File lib/bugsnag/integrations/rails/controller_methods.rb, line 10
def before_bugsnag_notify(*methods, &block)
  _add_bugsnag_notify_callback(:before_callbacks, *methods, &block)
end