class Scraypa::DriverResetter

Attributes

requests_since_last_reset[RW]

Public Class Methods

new(every_n_requests) click to toggle source
# File lib/scraypa/driver_resetter.rb, line 7
def initialize every_n_requests
  @every_n_requests = every_n_requests
  @requests_since_last_reset = 0
end

Public Instance Methods

reset_if_nth_request() click to toggle source
# File lib/scraypa/driver_resetter.rb, line 12
def reset_if_nth_request
  @requests_since_last_reset += 1
  if @requests_since_last_reset >= @every_n_requests
    Capybara.current_driver == :poltergeist ?
      reset_poltergeist_driver : reset_headless_chromium_driver
    @requests_since_last_reset = 0
  end
end

Private Instance Methods

reset_headless_chromium_driver() click to toggle source
# File lib/scraypa/driver_resetter.rb, line 30
def reset_headless_chromium_driver
  Capybara.reset_sessions!
  Capybara.send(:session_pool).each do |session_name, session|
    session.driver.quit if session_name.include?('headless_chromium')
  end
end
reset_poltergeist_driver() click to toggle source
# File lib/scraypa/driver_resetter.rb, line 23
def reset_poltergeist_driver
  Capybara.reset_sessions!
  Capybara.send(:session_pool).each do |session_name, session|
    session.driver.restart if session_name.include?('poltergeist')
  end
end