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)


6
7
8
9
# File 'lib/puppeteer/timeout_helper.rb', line 6

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



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/puppeteer/timeout_helper.rb', line 11

def with_timeout(&block)
  if @timeout_ms > 0
    begin
      Timeout.timeout(@timeout_ms / 1000.0, &block)
    rescue Timeout::Error
      raise Puppeteer::TimeoutError.new("waiting for #{@task_name} failed: timeout #{@timeout_ms}ms exceeded")
    end
  else
    block.call
  end
end