Sha256: 999edb02f8b09d731bfb6e05b7c3829c058875201edf61d527ccaa1d07c73387

Contents?: true

Size: 1.16 KB

Versions: 43

Compression:

Stored size: 1.16 KB

Contents

module Bugsnag::Rails
  module ControllerMethods
    def self.included(base)
      base.extend ClassMethods
    end

    module ClassMethods

      private
      def before_bugsnag_notify(*methods, &block)
        _add_bugsnag_notify_callback(:before_callbacks, *methods, &block)
      end

      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
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
bugsnag-6.27.1 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.26.4 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.26.3 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.26.2 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.26.1 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.26.0 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.25.2 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.25.1 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.25.0 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.24.2 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.24.1 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.24.0 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.23.0 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.22.1 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.21.0 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.20.0 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.19.0 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.18.0 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.17.0 lib/bugsnag/integrations/rails/controller_methods.rb
bugsnag-6.16.0 lib/bugsnag/integrations/rails/controller_methods.rb