Class: CoffeeBreak::Waiter::Coffee
- Inherits:
-
Object
- Object
- CoffeeBreak::Waiter::Coffee
- Defined in:
- lib/coffee_break/waiter/coffee.rb
Instance Method Summary collapse
-
#initialize(timeout: DEFAULT[:timeout], interval: DEFAULT[:interval], rescues: DEFAULT[:rescues], raise: DEFAULT[:raise]) ⇒ Coffee
constructor
A new instance of Coffee.
- #until(message: nil) ⇒ Object
Constructor Details
#initialize(timeout: DEFAULT[:timeout], interval: DEFAULT[:interval], rescues: DEFAULT[:rescues], raise: DEFAULT[:raise]) ⇒ Coffee
Returns a new instance of Coffee.
4 5 6 7 8 9 10 11 |
# File 'lib/coffee_break/waiter/coffee.rb', line 4 def initialize(timeout: DEFAULT[:timeout], interval: DEFAULT[:interval], rescues: DEFAULT[:rescues], raise: DEFAULT[:raise]) @timeout = timeout @interval = interval @rescues = rescues @raise = raise end |
Instance Method Details
#until(message: nil) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/coffee_break/waiter/coffee.rb', line 17 def until(message: nil) result = nil end_time = Time.now + @timeout loop do begin result = yield return result if result rescue *@rescues end break if Time.now >= end_time sleep @interval end if @raise raise(TimeoutError, || "Timed out after #{@timeout} seconds") else warn if result end end |