module Rollbar::Middleware::Rack::Builder

Public Class Methods

included(base) click to toggle source
# File lib/rollbar/middleware/rack/builder.rb, line 38
def self.included(base)
  base.send(:alias_method, :call_without_rollbar, :call)
  base.send(:alias_method, :call, :call_with_rollbar)
end

Public Instance Methods

call_with_rollbar(env) click to toggle source
# File lib/rollbar/middleware/rack/builder.rb, line 11
def call_with_rollbar(env)
  Rollbar.reset_notifier!

  Rollbar.scoped(fetch_scope(env)) do
    begin
      call_without_rollbar(env)
    rescue ::Exception => e # rubocop:disable Lint/RescueException
      report_exception_to_rollbar(env, e)
      raise
    end
  end
end
fetch_scope(env) click to toggle source
# File lib/rollbar/middleware/rack/builder.rb, line 24
def fetch_scope(env)
  {
    :request => proc { extract_request_data_from_rack(env) },
    :person => person_data_proc(env)
  }
rescue Exception => e # rubocop:disable Lint/RescueException
  report_exception_to_rollbar(env, e)
  raise
end
person_data_proc(env) click to toggle source
# File lib/rollbar/middleware/rack/builder.rb, line 34
def person_data_proc(env)
  proc { extract_person_data_from_controller(env) }
end