class DitoUtils::MethodRetry

Public Class Methods

new(sleep_time, retries = 10) click to toggle source
# File lib/dito_utils.rb, line 5
def initialize(sleep_time, retries = 10)
  @sleep_time = sleep_time
  @retries = retries
  @error_count = 0
end

Public Instance Methods

retry(error_class) { || ... } click to toggle source
# File lib/dito_utils.rb, line 11
def retry(error_class)
  while @error_count < @retries
    begin
      return yield
    rescue *error_class => e
      sleep(@sleep_time)
      increment_error_count
      raise e if last_try?
    end
  end
end

Private Instance Methods

increment_error_count() click to toggle source
# File lib/dito_utils.rb, line 25
def increment_error_count
  @error_count += 1
end
last_try?() click to toggle source
# File lib/dito_utils.rb, line 29
def last_try?
  @error_count == @retries
end