class Excon::Rails::Middleware

Middleware for tracking requests

Public Class Methods

install() click to toggle source
# File lib/excon/rails/middleware.rb, line 8
def install
  index = ::Excon.defaults[:middlewares]
    .index(::Excon::Middleware::Instrumentor)
  ::Excon.defaults[:middlewares].insert(index || -1, self)
end

Public Instance Methods

error_call(datum) click to toggle source
# File lib/excon/rails/middleware.rb, line 15
def error_call(datum)
  ActiveSupport::Notifications
    .instrument('error.excon', error: datum[:error])
  @stack.error_call(datum)
end
request_call(datum) click to toggle source
# File lib/excon/rails/middleware.rb, line 21
def request_call(datum)
  ActiveSupport::Notifications.instrument(event_name(datum), datum) do
    @stack.request_call(datum)
  end
end
response_call(datum) click to toggle source
# File lib/excon/rails/middleware.rb, line 27
def response_call(datum)
  ActiveSupport::Notifications
    .instrument('response.excon', datum[:response])
  @stack.response_call(datum)
end

Private Instance Methods

event_name(datum) click to toggle source
# File lib/excon/rails/middleware.rb, line 35
def event_name(datum)
  if datum[:retries_remaining] < datum[:retry_limit]
    'retry.excon'
  else
    'request.excon'
  end
end