Module: Kernel
- Defined in:
- lib/subelsky_power_tools/ext/kernel.rb
Overview
Instance Method Summary collapse
Instance Method Details
#retryable(options = {}) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/subelsky_power_tools/ext/kernel.rb', line 4 def retryable( = {}) opts = { :tries => 1, :on => [StandardError] }.merge() tries = opts[:tries] exceptions = opts[:on] count = 0 sleep_seconds = opts[:sleep] || 0 begin count += 1 yield rescue *exceptions => e if count < tries Kernel.sleep(sleep_seconds) retry else raise e end end end |