Sha256: 3f2eda381a27ce829cc1dac8398989dac2b28861d2d894f4801e32095b55d21c

Contents?: true

Size: 358 Bytes

Versions: 2

Compression:

Stored size: 358 Bytes

Contents

module InlineTimeout
  module_function

  def self.timeout(seconds, interval=nil)
    start = Time.now.to_i
    begin
      result = yield
      return if result
      sleep(interval) if interval && interval > 0
    end until (Time.now.to_i - start) > seconds
    raise Error, "Timeout after #{seconds} seconds"
  end

  class Error < StandardError; end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
railsless-active_record-0.0.2 spec/support/inline_timeout_helpers.rb
railsless-active_record-0.0.1 spec/support/inline_timeout_helpers.rb