class WaitUntil::Operation
Public Class Methods
new(args)
click to toggle source
# File lib/wait_until/operation.rb, line 5 def initialize(args) @timeout_in_seconds = args[:timeout_in_seconds] || ::WaitUntil::Wait.default_timeout_in_seconds @description = args[:description] @failure_message = args[:failure_message] @on_failure = args[:on_failure] end
Public Instance Methods
eventually_true?(&block)
click to toggle source
# File lib/wait_until/operation.rb, line 12 def eventually_true?(&block) @start_time = Time.now loop do return true if true?(&block) return false if timed_out? end end
failure_message()
click to toggle source
# File lib/wait_until/operation.rb, line 20 def failure_message message = @failure_message message ||= "Timed-out waiting until '#{@description}'" if @description message ||= "Timed-out waiting until operation completed" message << "\nLast observed exception: #{@last_error}" if @last_error message end
Private Instance Methods
timed_out?()
click to toggle source
# File lib/wait_until/operation.rb, line 37 def timed_out? elapsed_time = Time.now - @start_time is_timed_out = elapsed_time >= @timeout_in_seconds @on_failure.call if @on_failure && is_timed_out is_timed_out end
true?(&block)
click to toggle source
# File lib/wait_until/operation.rb, line 30 def true?(&block) !!block.call rescue StandardError => error @last_error = error false end