module Cistern::WaitFor

Public Class Methods

wait_for(timeout = Cistern.timeout, interval = Cistern.poll_interval, &_block) click to toggle source
# File lib/cistern/timeout.rb, line 5
def self.wait_for(timeout = Cistern.timeout, interval = Cistern.poll_interval, &_block)
  duration = 0
  start    = Time.now

  until yield || duration > timeout
    sleep(interval.to_f)
    duration = Time.now - start
  end

  if duration > timeout
    false
  else
    { duration: duration }
  end
end
wait_for!(*_arg) click to toggle source
# File lib/cistern/timeout.rb, line 21
def self.wait_for!(*_arg)
  wait_for
end

Public Instance Methods

poll_interval() click to toggle source
# File lib/cistern/wait_for.rb, line 15
def poll_interval
  @poll_interval || Cistern.poll_interval
end
poll_interval=(poll_interval) click to toggle source
# File lib/cistern/wait_for.rb, line 19
def poll_interval=(poll_interval)
  @poll_interval = poll_interval
end
timeout() click to toggle source
# File lib/cistern/wait_for.rb, line 7
def timeout
  @timeout || Cistern.timeout
end
timeout=(timeout) click to toggle source
# File lib/cistern/wait_for.rb, line 11
def timeout=(timeout)
  @timeout = timeout
end
timeout_error() click to toggle source
# File lib/cistern/wait_for.rb, line 27
def timeout_error
  @timeout_error || self.const_defined?(:Timeout) && const_get(:Timeout) || ::Timeout::Error
end
timeout_error=(timeout_error) click to toggle source
# File lib/cistern/wait_for.rb, line 23
def timeout_error=(timeout_error)
  @timeout_error = timeout_error
end
wait_for(timeout = self.timeout, interval = poll_interval, &_block) click to toggle source
# File lib/cistern/wait_for.rb, line 31
def wait_for(timeout = self.timeout, interval = poll_interval, &_block)
  duration = 0
  start    = Time.now

  until yield || duration > timeout
    sleep(interval.to_f)
    duration = Time.now - start
  end

  duration > timeout ? false : duration
end
wait_for!(timeout = self.timeout, interval = poll_interval, &block) click to toggle source
# File lib/cistern/wait_for.rb, line 43
def wait_for!(timeout = self.timeout, interval = poll_interval, &block)
  wait_for(timeout, interval, &block) || fail(timeout_error, "wait_for(#{timeout}) exceeded")
end