Methods

Files

Spruz::Attempt

Public Instance Methods

attempt(attempts = 1, exception_class = StandardError, sleep_duration = nil, &block) click to toggle source
# File lib/spruz/attempt.rb, line 3
def attempt(attempts = 1, exception_class = StandardError, sleep_duration = nil, &block)
  return if attempts <= 0
  count = 0
  if exception_class.nil?
    begin
      count += 1
      if block.call(count)
        return true
      elsif sleep_duration and count < attempts
        sleep sleep_duration
      end
    end until count == attempts
    false
  else
    begin
      count += 1
      block.call(count)
      true
    rescue exception_class
      if count < attempts
        sleep_duration and sleep sleep_duration
        retry
      end
      false
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.