module RetryableBlock::ClassMethods

Public Instance Methods

retryable(n=3, sleep_time=nil) { || ... } click to toggle source
# File lib/retryable_block.rb, line 13
def retryable(n=3, sleep_time=nil)
  tries = 0
  begin
    yield
  rescue
    if (tries+=1) <= n
      if sleep_time
        sleep sleep_time
      end
      retry
    else
      raise
    end
  end
end