Class: Puppeteer::TimeoutHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/puppeteer/timeout_helper.rb

Instance Method Summary collapse

Constructor Details

#initialize(task_name, timeout_ms:, default_timeout_ms:) ⇒ TimeoutHelper

Returns a new instance of TimeoutHelper.

Parameters:

  • timeout_ms (String|Integer|nil)
  • default_timeout_ms (Integer)


4
5
6
7
# File 'lib/puppeteer/timeout_helper.rb', line 4

def initialize(task_name, timeout_ms:, default_timeout_ms:)
  @task_name = task_name
  @timeout_ms = (timeout_ms || default_timeout_ms).to_i
end

Instance Method Details

#with_timeout(&block) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/puppeteer/timeout_helper.rb', line 9

def with_timeout(&block)
  return block.call if @timeout_ms <= 0

  begin
    Puppeteer::AsyncUtils.async_timeout(@timeout_ms, &block).wait
  rescue Async::TimeoutError
    raise Puppeteer::TimeoutError.new("waiting for #{@task_name} failed: timeout #{@timeout_ms}ms exceeded")
  end
end