class FaradayMiddleware::Request::Retry

Faraday middleware to handle HTTP Status 429 (rate limiting) / 503 (maintenance)

Attributes

retry_util[R]

Public Class Methods

new(app, opts = {}) click to toggle source
Calls superclass method
# File lib/faraday_middleware-request-retry/retry.rb, line 9
def initialize(app, opts = {})
  super app
  @retry_util = FaradayMiddleware::Request::RetryUtil.new opts
end

Public Instance Methods

call(env) click to toggle source
# File lib/faraday_middleware-request-retry/retry.rb, line 14
def call(env)
  original_env = env.dup
  response = @app.call env

  retry_status = @retry_util.retry_status response.env[:status], response.env[:response_headers][:retry_after]

  if retry_status
    @app.call original_env
  else
    response
  end
end