class Watir::Wait::Timer

Public Class Methods

new(timeout: nil) click to toggle source
# File lib/watir/wait/timer.rb, line 4
def initialize(timeout: nil)
  @end_time = timeout ? current_time + timeout : nil
  @remaining_time = @end_time - current_time if @end_time
end

Public Instance Methods

locked?() click to toggle source
# File lib/watir/wait/timer.rb, line 33
def locked?
  !@end_time.nil?
end
remaining_time() click to toggle source
# File lib/watir/wait/timer.rb, line 25
def remaining_time
  @end_time - current_time
end
reset!() click to toggle source
# File lib/watir/wait/timer.rb, line 29
def reset!
  @end_time = nil
end
wait(timeout) { |block| ... } click to toggle source

Executes given block until it returns true or exceeds timeout. @param [Integer] timeout @yield block @api private

# File lib/watir/wait/timer.rb, line 16
def wait(timeout, &block)
  end_time = @end_time || current_time + timeout
  loop do
    yield(block)
    @remaining_time = end_time - current_time
    break if @remaining_time.negative?
  end
end

Private Instance Methods

current_time() click to toggle source
# File lib/watir/wait/timer.rb, line 40
def current_time
  Process.clock_gettime(Process::CLOCK_MONOTONIC)
end