class Retryer::Wait
Attributes
interval[RW]
timeout[RW]
Public Class Methods
new(timeout: 5, interval: 1, verbose: true)
click to toggle source
# File lib/retryer.rb, line 32 def initialize(timeout: 5, interval: 1, verbose: true) @timeout=timeout @interval=interval @verbose=verbose end
Public Instance Methods
until(description: 'Operation') { || ... }
click to toggle source
# File lib/retryer.rb, line 38 def until(description: 'Operation') begin Timeout::timeout(@timeout) do retries = 0 begin raise "Condition not met" unless yield rescue Exception => e sleep @interval retries += 1 puts "Retrying during wait (retries #{retries}) '#{description}' with caught exception: #{e}" if @verbose retry end end rescue Exception => e raise "TIMEOUT: '#{description}' after waiting #{@timeout} seconds." end end