Sha256: 919c27e8807ca0966f6b9bbce5d560157b43fb903dbca7286afa54d693258597

Contents?: true

Size: 1.27 KB

Versions: 3

Compression:

Stored size: 1.27 KB

Contents

# encoding: utf-8

# This code is made by Jari Bakken @ https://gist.github.com/1b14247aae08a7e93f54
#
# Added wait_until? and wait_while? methods and reduced sleeping time to 0.1 secs
module Watir
  module WaitHelper
    extend self

    class TimeoutError < StandardError
    end

    #
    # Wait until the block evaluates to true or times out.
    #

    def wait_until(timeout = 60, &block)
      end_time = ::Time.now + timeout

      until ::Time.now > end_time
        result = yield(self)
        return result if result
        sleep 0.1
      end

      raise TimeoutError, "timed out after #{timeout} seconds"
    end

    def wait_until?(timeout = 60, &block)
      wait_until(timeout, &block)
      true
    rescue TimeoutError
      false
    end

    #
    # Wait while the block evaluates to true or times out.
    #

    def wait_while(timeout = 60, &block)
      end_time = ::Time.now + timeout

      until ::Time.now > end_time
        return unless yield(self)
        sleep 0.1
      end

      raise TimeoutError, "timed out after #{timeout} seconds"
    end

    def wait_while?(timeout = 60, &block)
      wait_until(timeout, &block)
      true
    rescue TimeoutError
      false
    end

  end # WaitHelper
end # Watir

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
watirsplash-0.2.8 lib/watirsplash/wait_helper.rb
watirsplash-0.2.7 lib/watirsplash/wait_helper.rb
watirsplash-0.2.6 lib/watirsplash/wait_helper.rb