Module: Philiprehberger::WebhookBuilder::Backoff

Defined in:
lib/philiprehberger/webhook_builder/backoff.rb

Defined Under Namespace

Classes: Decorrelated, Exponential, Fixed, Linear

Class Method Summary collapse

Class Method Details

.resolve(option) ⇒ #call

Resolve a backoff option into a callable strategy.

Parameters:

  • option (Symbol, Proc, nil)

    the backoff strategy

Returns:

  • (#call)

    a callable backoff strategy



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/philiprehberger/webhook_builder/backoff.rb', line 84

def self.resolve(option)
  case option
  when :exponential, nil
    Exponential.new
  when :linear
    Linear.new
  when :fixed
    Fixed.new
  when :decorrelated
    Decorrelated.new
  when Proc
    option
  else
    raise ArgumentError,
          "Unknown backoff strategy: #{option.inspect}. " \
          'Use :exponential, :linear, :fixed, :decorrelated, or a Proc.'
  end
end