Sha256: 0d94098a80ec5903265b16addd658d174807d20800b353f211f22e4cf654051c

Contents?: true

Size: 948 Bytes

Versions: 9

Compression:

Stored size: 948 Bytes

Contents

module Raygun
  module Middleware
    # Adapted from the Rollbar approach https://github.com/rollbar/rollbar-gem/blob/master/lib/rollbar/middleware/rails/rollbar_request_store.rb
    class RailsInsertAffectedUser

      def initialize(app)
        @app = app
      end

      def call(env)
        response = @app.call(env)
      rescue Exception => exception
        if (controller = env["action_controller.instance"]) && controller.respond_to?(Raygun.configuration.affected_user_method)
          user = controller.send(Raygun.configuration.affected_user_method)

          if user
            identifier = if (m = Raygun.configuration.affected_user_identifier_methods.detect { |m| user.respond_to?(m) })
              user.send(m)
            else
              user
            end

            env["raygun.affected_user"] = { :identifier => identifier }
          end
          
        end
        raise exception
      end

    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
raygun4ruby-1.1.5 lib/raygun/middleware/rails_insert_affected_user.rb
raygun4ruby-1.1.4 lib/raygun/middleware/rails_insert_affected_user.rb
raygun4ruby-1.1.3 lib/raygun/middleware/rails_insert_affected_user.rb
raygun4ruby-1.1.2 lib/raygun/middleware/rails_insert_affected_user.rb
raygun4ruby-1.1.1 lib/raygun/middleware/rails_insert_affected_user.rb
raygun4ruby-1.1.0 lib/raygun/middleware/rails_insert_affected_user.rb
raygun4ruby-1.0.1 lib/raygun/middleware/rails_insert_affected_user.rb
raygun4ruby-1.0.0 lib/raygun/middleware/rails_insert_affected_user.rb
raygun4ruby-0.0.9 lib/raygun/middleware/rails_insert_affected_user.rb