Module: Chemlab::Support::Waiter

Extended by:
Repeater
Defined in:
lib/chemlab/support/waiter.rb

Constant Summary

Constants included from Repeater

Repeater::DEFAULT_MAX_WAIT_TIME, Repeater::RetriesExceededError, Repeater::WaitExceededError

Class Method Summary collapse

Methods included from Repeater

repeat_until

Class Method Details

.wait_until(max_duration: singleton_class::DEFAULT_MAX_WAIT_TIME, reload_page: nil, sleep_interval: 0.1, raise_on_failure: true, retry_on_exception: false, log: true) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/chemlab/support/waiter.rb', line 10

def wait_until(max_duration: singleton_class::DEFAULT_MAX_WAIT_TIME, reload_page: nil, sleep_interval: 0.1, raise_on_failure: true, retry_on_exception: false, log: true)
  if log
    QA::Runtime::Logger.debug(
      <<~MSG.tr("\n", ' ')
        with wait_until: max_duration: #{max_duration};
        reload_page: #{reload_page};
        sleep_interval: #{sleep_interval};
        raise_on_failure: #{raise_on_failure}
    MSG
    )
  end

  result = nil
  self.repeat_until(
    max_duration: max_duration,
    reload_page: reload_page,
    sleep_interval: sleep_interval,
    raise_on_failure: raise_on_failure,
    retry_on_exception: retry_on_exception,
    log: log
  ) do
    result = yield
  end
  QA::Runtime::Logger.debug("ended wait_until") if log

  result
end