Module: HTTPX::Plugins::Retries::OptionsMethods

Defined in:
lib/httpx/plugins/retries.rb

Overview

adds support for the following options:

:max_retries

max number of times a request will be retried (defaults to 3).

:retry_change_requests

whether idempotent requests are retried (defaults to false).

:retry_after

seconds after which a request is retried; can also be a callable object (i.e. ->(req, res) { ... } )

:retry_jitter

number of seconds applied to :retry_after (must be a callable, i.e. ->(retry_after) { ... } ).

:retry_on

callable which alternatively defines a different rule for when a response is to be retried (i.e. ->(res) { ... }).

Instance Method Summary collapse

Instance Method Details

#option_max_retries(value) ⇒ Object

Raises:

  • (TypeError)


72
73
74
75
76
77
# File 'lib/httpx/plugins/retries.rb', line 72

def option_max_retries(value)
  num = Integer(value)
  raise TypeError, ":max_retries must be positive" unless num >= 0

  num
end

#option_retry_after(value) ⇒ Object



55
56
57
58
59
60
61
62
63
# File 'lib/httpx/plugins/retries.rb', line 55

def option_retry_after(value)
  # return early if callable
  unless value.respond_to?(:call)
    value = Float(value)
    raise TypeError, ":retry_after must be positive" unless value.positive?
  end

  value
end

#option_retry_change_requests(v) ⇒ Object



79
80
81
# File 'lib/httpx/plugins/retries.rb', line 79

def option_retry_change_requests(v)
  v
end

#option_retry_jitter(value) ⇒ Object

Raises:

  • (TypeError)


65
66
67
68
69
70
# File 'lib/httpx/plugins/retries.rb', line 65

def option_retry_jitter(value)
  # return early if callable
  raise TypeError, ":retry_jitter must be callable" unless value.respond_to?(:call)

  value
end

#option_retry_on(value) ⇒ Object

Raises:

  • (TypeError)


83
84
85
86
87
# File 'lib/httpx/plugins/retries.rb', line 83

def option_retry_on(value)
  raise TypeError, ":retry_on must be called with the response" unless value.respond_to?(:call)

  value
end