class Greenjaguar::PolicyBuilder
Attributes
count[RW]
exceptions[RW]
logger[RW]
timeout[RW]
wait_strategy[RW]
Public Class Methods
new(&block)
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 5 def initialize(&block) @count = 1 @timeout = 300 @exceptions = [] instance_eval(&block) end
Public Instance Methods
fail_silently()
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 27 def fail_silently @fail_silently = true end
fail_silently?()
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 31 def fail_silently? @fail_silently end
measure_time_in(time_unit)
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 43 def measure_time_in(time_unit) strategy.time_unit = time_unit self end
never_give_up()
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 35 def never_give_up @count = -1 end
never_give_up?()
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 39 def never_give_up? @count == -1 end
only_on_exceptions(exception_array)
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 53 def only_on_exceptions(exception_array) @exceptions.concat exception_array end
strategy()
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 70 def strategy @strategy ||= init_wait_strategy(:default) end
timeout_after(retry_timeout)
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 17 def timeout_after(retry_timeout) @timeout = retry_timeout self end
times(retry_count)
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 12 def times(retry_count) @count = retry_count self end
valid_exception?(exception)
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 57 def valid_exception?(exception) if @exceptions.empty? return true else @exceptions.each {|ex| return true if exception.class <= ex} end false end
wait()
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 66 def wait strategy.wait end
with_strategy(wait_strategy, *args)
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 48 def with_strategy(wait_strategy, *args) @strategy = init_wait_strategy(wait_strategy, *args) self end
Private Instance Methods
init_wait_strategy(wait_strategy, *args)
click to toggle source
# File lib/greenjaguar/policy_builder.rb, line 76 def init_wait_strategy(wait_strategy, *args) case wait_strategy when :fibonacci return Greenjaguar::Strategies::FibonacciStrategy.new when :exponential_backoff return Greenjaguar::Strategies::ExponentialBackoffStrategy.new when :random return Greenjaguar::Strategies::RandomStrategy.new when :fixed_interval return Greenjaguar::Strategies::FixedIntervalStrategy.new(*args) else return Greenjaguar::Strategies::DefaultWaitStrategy.new end end