lib/watir/legacy_wait.rb in watir-6.10.0 vs lib/watir/legacy_wait.rb in watir-6.10.1
- old
+ new
@@ -1,126 +1,126 @@
-require 'forwardable'
-
-# TODO - remove this file for future release
-module Watir
-
- class BaseDecorator
- def initialize(element, timeout, message = nil)
- @element = element
- @timeout = timeout
- @message = message
- end
-
- def respond_to?(*args)
- @element.respond_to?(*args)
- end
-
- def method_missing(m, *args, &block)
- unless @element.respond_to?(m)
- raise NoMethodError, "undefined method `#{m}' for #{@element.inspect}:#{@element.class}"
- end
-
- Watir::Wait.until(@timeout, @message) { wait_until }
-
- @element.__send__(m, *args, &block)
- end
- end
-
- #
- # Wraps an Element so that any subsequent method calls are
- # put on hold until the element is present (exists and is visible) on the page.
- #
-
- class WhenPresentDecorator < BaseDecorator
- def present?
- Watir::Wait.until(@timeout, @message) { wait_until }
- true
- rescue Watir::Wait::TimeoutError
- false
- end
-
- private
-
- def wait_until
- @element.present?
- end
- end # WhenPresentDecorator
-
- #
- # Wraps an Element so that any subsequent method calls are
- # put on hold until the element is enabled (exists and is enabled) on the page.
- #
-
- class WhenEnabledDecorator < BaseDecorator
-
- private
-
- def wait_until
- @element.enabled?
- end
- end # WhenEnabledDecorator
-
- #
- # Convenience methods for things that eventually become present.
- #
- # Includers should implement a public #present? and a (possibly private) #selector_string method.
- #
-
- module EventuallyPresent
- #
- # Waits until the element is present.
- #
- # @example
- # browser.text_field(name: "new_user_first_name").when_present.click
- # browser.text_field(name: "new_user_first_name").when_present { |field| field.set "Watir" }
- # browser.text_field(name: "new_user_first_name").when_present(60).text
- #
- # @param [Integer] timeout seconds to wait before timing out
- #
- # @see Watir::Wait
- # @see Watir::Element#present?
- #
-
- def when_present(timeout = nil)
- warning = '#when_present has been deprecated and is unlikely to be needed; '
- warning << 'replace this with #wait_until_present if a wait is still needed'
- Watir.logger.warn warning
-
- timeout ||= Watir.default_timeout
- message = "waiting for #{selector_string} to become present"
-
- if block_given?
- Watir::Wait.until(timeout, message) { present? }
- yield self
- else
- WhenPresentDecorator.new(self, timeout, message)
- end
- end
-
- #
- # Waits until the element is enabled.
- #
- # @example
- # browser.button(name: "new_user_button_2").when_enabled.click
- #
- # @param [Integer] timeout seconds to wait before timing out
- #
- # @see Watir::Wait
- # @see Watir::Element#enabled?
- #
-
- def when_enabled(timeout = nil)
- Watir.logger.warn '#when_enabled has been deprecated and is unlikely to be needed'
-
- timeout ||= Watir.default_timeout
- message = "waiting for #{selector_string} to become enabled"
-
- if block_given?
- Watir::Wait.until(timeout, message) { enabled? }
- yield self
- else
- WhenEnabledDecorator.new(self, timeout, message)
- end
- end
-
- end # EventuallyPresent
-end # Watir
+require 'forwardable'
+
+# TODO - remove this file for future release
+module Watir
+
+ class BaseDecorator
+ def initialize(element, timeout, message = nil)
+ @element = element
+ @timeout = timeout
+ @message = message
+ end
+
+ def respond_to?(*args)
+ @element.respond_to?(*args)
+ end
+
+ def method_missing(m, *args, &block)
+ unless @element.respond_to?(m)
+ raise NoMethodError, "undefined method `#{m}' for #{@element.inspect}:#{@element.class}"
+ end
+
+ Watir::Wait.until(@timeout, @message) { wait_until }
+
+ @element.__send__(m, *args, &block)
+ end
+ end
+
+ #
+ # Wraps an Element so that any subsequent method calls are
+ # put on hold until the element is present (exists and is visible) on the page.
+ #
+
+ class WhenPresentDecorator < BaseDecorator
+ def present?
+ Watir::Wait.until(@timeout, @message) { wait_until }
+ true
+ rescue Watir::Wait::TimeoutError
+ false
+ end
+
+ private
+
+ def wait_until
+ @element.present?
+ end
+ end # WhenPresentDecorator
+
+ #
+ # Wraps an Element so that any subsequent method calls are
+ # put on hold until the element is enabled (exists and is enabled) on the page.
+ #
+
+ class WhenEnabledDecorator < BaseDecorator
+
+ private
+
+ def wait_until
+ @element.enabled?
+ end
+ end # WhenEnabledDecorator
+
+ #
+ # Convenience methods for things that eventually become present.
+ #
+ # Includers should implement a public #present? and a (possibly private) #selector_string method.
+ #
+
+ module EventuallyPresent
+ #
+ # Waits until the element is present.
+ #
+ # @example
+ # browser.text_field(name: "new_user_first_name").when_present.click
+ # browser.text_field(name: "new_user_first_name").when_present { |field| field.set "Watir" }
+ # browser.text_field(name: "new_user_first_name").when_present(60).text
+ #
+ # @param [Integer] timeout seconds to wait before timing out
+ #
+ # @see Watir::Wait
+ # @see Watir::Element#present?
+ #
+
+ def when_present(timeout = nil)
+ warning = '#when_present has been deprecated and is unlikely to be needed; '
+ warning << 'replace this with #wait_until_present if a wait is still needed'
+ Watir.logger.warn warning
+
+ timeout ||= Watir.default_timeout
+ message = "waiting for #{selector_string} to become present"
+
+ if block_given?
+ Watir::Wait.until(timeout, message) { present? }
+ yield self
+ else
+ WhenPresentDecorator.new(self, timeout, message)
+ end
+ end
+
+ #
+ # Waits until the element is enabled.
+ #
+ # @example
+ # browser.button(name: "new_user_button_2").when_enabled.click
+ #
+ # @param [Integer] timeout seconds to wait before timing out
+ #
+ # @see Watir::Wait
+ # @see Watir::Element#enabled?
+ #
+
+ def when_enabled(timeout = nil)
+ Watir.logger.warn '#when_enabled has been deprecated and is unlikely to be needed'
+
+ timeout ||= Watir.default_timeout
+ message = "waiting for #{selector_string} to become enabled"
+
+ if block_given?
+ Watir::Wait.until(timeout, message) { enabled? }
+ yield self
+ else
+ WhenEnabledDecorator.new(self, timeout, message)
+ end
+ end
+
+ end # EventuallyPresent
+end # Watir