Sha256: d10e721ceeb5fd4799a3a1e3a4ab7586c279efd2d89e2678c7561f8f11287a9c

Contents?: true

Size: 456 Bytes

Versions: 9

Compression:

Stored size: 456 Bytes

Contents

module Cumuli
  class Waiter
    TIMEOUT = 30
    MESSAGE = "#wait_until did not resolve after #{TIMEOUT} seconds"

    attr_reader :message

    def initialize(message=MESSAGE)
      @message = message
    end

    def wait_until(timeout=TIMEOUT, &block)
      begin
        Timeout.timeout(timeout) do
          sleep(0.1) until value = block.call
          value
        end
      rescue Timeout::Error
        raise message
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
cumuli-0.5.0 lib/cumuli/waiter.rb
cumuli-0.4.1 lib/cumuli/waiter.rb
cumuli-0.4.0 lib/cumuli/waiter.rb
cumuli-0.3.4 lib/cumuli/waiter.rb
cumuli-0.3.2 lib/cumuli/waiter.rb
cumuli-0.3.1 lib/cumuli/waiter.rb
cumuli-0.3.0 lib/cumuli/waiter.rb
cumuli-0.2.1 lib/cumuli/waiter.rb
cumuli-0.2.0 lib/cumuli/waiter.rb