Module: Qless::WaitUntil

Defined in:
lib/qless/wait_until.rb

Constant Summary collapse

TimeoutError =
Class.new(StandardError)

Class Method Summary collapse

Class Method Details

.wait_until(timeout) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/qless/wait_until.rb', line 5

def wait_until(timeout)
  timeout_at = Time.now + timeout

  loop do
    return if yield
    sleep 0.002
    if Time.now > timeout_at
      raise TimeoutError, "Timed out after #{timeout} seconds"
    end
  end
end