module Rhod::Backoffs
Public Instance Methods
backoff_sugar_to_enumerator(backoff)
click to toggle source
# File lib/rhod/backoffs.rb, line 5 def backoff_sugar_to_enumerator(backoff) if backoff.is_a?(Rhod::Backoffs::Backoff) backoff elsif backoff.is_a?(Numeric) Rhod::Backoffs::Constant.new(backoff) elsif backoff.is_a?(Range) Rhod::Backoffs::Random.new(backoff) elsif backoff.is_a?(String) n = (backoff[1..-1].to_f) case backoff[0] when "^" Rhod::Backoffs::Exponential.new(n) when "l" Rhod::Backoffs::Logarithmic.new(n) when "r" min = backoff[1..-1].split("..")[0].to_f max = backoff[1..-1].split("..")[1].to_f Rhod::Backoffs::Random.new((min..max)) end elsif backoff.is_a?(Symbol) case backoff when :^ Rhod::Backoffs::Exponential.new(0) when :l Rhod::Backoffs::Logarithmic.new(1.3) when :r Rhod::Backoffs::Random.new(0..10) end end end