Method: Wait#initialize
- Defined in:
- lib/wait.rb
#initialize(options = {}) ⇒ Wait
Creates a new Wait instance.
Basic Options
- :attempts
-
Number of times to attempt the block. Default is
5. - :timeout
-
Seconds until the block times out. Default is
15. - :delay
-
Seconds to delay in between attempts. Default is
1. - :rescue
-
One or an array of exceptions to rescue. Default is
nil. - :debug
-
If
true, debug logging is enabled. Default isfalse.
Advanced Options
- :logger
-
Ruby logger used. Default is Wait::BaseLogger.
- :counter
-
Strategy used to count attempts. Default is Wait::BaseCounter.
- :delayer
-
Strategy used to delay in between attempts. Default is Wait::RegularDelayer.
- :rescuer
-
Strategy used to rescue exceptions. Default is Wait::BaseRescuer.
- :tester
-
Strategy used to test the result. Default is Wait::TruthyTester.
- :raiser
-
Strategy used to raise specific exceptions. Default is Wait::SignalRaiser.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/wait.rb', line 48 def initialize( = {}) # Assign defaults. debug = [:debug] || false @logger = [:logger] || (debug ? DebugLogger : DEFAULT[:logger]).new attempts = [:attempts] || DEFAULT[:attempts] @counter = [:counter] || DEFAULT[:counter].new(attempts) @timeout = [:timeout] || DEFAULT[:timeout] delay = [:delay] || DEFAULT[:delay] @delayer = [:delayer] || DEFAULT[:delayer].new(delay) exceptions = [:rescue] @rescuer = [:rescuer] || DEFAULT[:rescuer].new(exceptions) @tester = [:tester] || DEFAULT[:tester].new @raiser = [:raiser] || DEFAULT[:raiser].new # Assign the logger to each of the strategies. [@counter, @delayer, @rescuer, @tester, @raiser].each do |strategy| strategy.logger = @logger if strategy.respond_to?(:logger=) end end |