Class: Bundler::Retry

Inherits:
Object
  • Object
show all
Defined in:
lib/bundler/retry.rb

Overview

General purpose class for retrying code that may fail

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, exceptions = nil, retries = self.class.default_retries) ⇒ Retry

Returns a new instance of Retry.



18
19
20
21
22
23
# File 'lib/bundler/retry.rb', line 18

def initialize(name, exceptions = nil, retries = self.class.default_retries)
  @name = name
  @retries = retries
  @exceptions = Array(exceptions) || []
  @total_runs = @retries + 1 # will run once, then upto attempts.times
end

Instance Attribute Details

#current_runObject

Returns the value of attribute current_run.



5
6
7
# File 'lib/bundler/retry.rb', line 5

def current_run
  @current_run
end

#nameObject

Returns the value of attribute name.



5
6
7
# File 'lib/bundler/retry.rb', line 5

def name
  @name
end

#total_runsObject

Returns the value of attribute total_runs.



5
6
7
# File 'lib/bundler/retry.rb', line 5

def total_runs
  @total_runs
end

Class Method Details

.default_attemptsObject Also known as: attempts



8
9
10
# File 'lib/bundler/retry.rb', line 8

def default_attempts
  default_retries + 1
end

.default_retriesObject



13
14
15
# File 'lib/bundler/retry.rb', line 13

def default_retries
  Bundler.settings[:retry]
end

Instance Method Details

#attempt(&block) ⇒ Object Also known as: attempts



25
26
27
28
29
30
31
# File 'lib/bundler/retry.rb', line 25

def attempt(&block)
  @current_run = 0
  @failed      = false
  @error       = nil
  run(&block) while keep_trying?
  @result
end