lib/retriable/retriable.rb in retriable-1.3.1 vs lib/retriable/retriable.rb in retriable-1.3.2

- old
+ new

@@ -1,10 +1,12 @@ -# encoding: utf-8 + # encoding: utf-8 require 'timeout' module Retriable + extend self + class Retry attr_accessor :tries attr_accessor :interval attr_accessor :timeout attr_accessor :on @@ -12,11 +14,11 @@ def initialize @tries = 3 @interval = 0 @timeout = nil - @on = Exception + @on = [StandardError, Timeout::Error] @on_retry = nil yield self if block_given? end @@ -40,24 +42,16 @@ end end end end - def retriable(options = {}, &block) - opts = { - :tries => 3, - :on => Exception, - :interval => 1 - } + def retriable(opts = {}, &block) + raise 'no block given' unless block_given? - opts.merge!(options) - - raise 'No block given' unless block_given? - Retry.new do |r| - r.tries = opts[:tries] - r.on = opts[:on] - r.interval = opts[:interval] + r.tries = opts[:tries] if opts[:tries] + r.on = opts[:on] if opts[:on] + r.interval = opts[:interval] if opts[:interval] r.timeout = opts[:timeout] if opts[:timeout] r.on_retry = opts[:on_retry] if opts[:on_retry] end.perform(&block) end end