lib/retriable.rb in retriable-3.0.1 vs lib/retriable.rb in retriable-3.0.2

- old
+ new

@@ -13,21 +13,24 @@ def config @config ||= Config.new end def retriable(opts = {}) - tries = opts[:tries] || config.tries - base_interval = opts[:base_interval] || config.base_interval - max_interval = opts[:max_interval] || config.max_interval - rand_factor = opts[:rand_factor] || config.rand_factor - multiplier = opts[:multiplier] || config.multiplier - max_elapsed_time = opts[:max_elapsed_time] || config.max_elapsed_time - intervals = opts[:intervals] || config.intervals - timeout = opts[:timeout] || config.timeout - on = opts[:on] || config.on - on_retry = opts[:on_retry] || config.on_retry + local_config = opts.empty? ? config : Config.new(config.to_h.merge(opts)) + tries = local_config.tries + base_interval = local_config.base_interval + max_interval = local_config.max_interval + rand_factor = local_config.rand_factor + multiplier = local_config.multiplier + max_elapsed_time = local_config.max_elapsed_time + intervals = local_config.intervals + timeout = local_config.timeout + on = local_config.on + on_retry = local_config.on_retry + sleep_disabled = local_config.sleep_disabled + start_time = Time.now elapsed_time = -> { Time.now - start_time } if intervals tries = intervals.size + 1 @@ -56,10 +59,10 @@ end interval = intervals[index] on_retry.call(exception, try, elapsed_time.call, interval) if on_retry raise if try >= tries || (elapsed_time.call + interval) > max_elapsed_time - sleep interval if config.sleep_disabled != true + sleep interval if sleep_disabled != true end end end end