Class: SmartPolling

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_polling.rb,
lib/smart_polling/version.rb

Defined Under Namespace

Classes: TimeoutError

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.poll(timeout: 10, interval: 1, timeout_error: nil) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/smart_polling.rb', line 6

def self.poll(timeout: 10, interval: 1, timeout_error: nil)
  timeout_error ||= TimeoutError.new
  time_limit = Time.now + timeout

  while Time.now < time_limit do
    result = yield
    return result if result
    sleep interval
  end

  raise timeout_error
end