class Crabfarm::DriverPool

Public Class Methods

new(_factory) click to toggle source
# File lib/crabfarm/driver_pool.rb, line 4
def initialize(_factory)
  @factory = _factory
  @drivers = Hash.new
end

Public Instance Methods

driver(_session_id=nil) click to toggle source
# File lib/crabfarm/driver_pool.rb, line 9
def driver(_session_id=nil)
  _session_id ||= :default_driver
  driver = @drivers[_session_id.to_sym]
  driver = @drivers[_session_id.to_sym] = @factory.build_driver(_session_id) if driver.nil?
  driver
end
release() click to toggle source
# File lib/crabfarm/driver_pool.rb, line 28
def release
  reset
end
reset(_session_id=nil) click to toggle source
# File lib/crabfarm/driver_pool.rb, line 16
def reset(_session_id=nil)
  if _session_id.nil?
    @drivers.values.each { |d| @factory.release_driver d }
    @drivers = Hash.new
  else
    _session_id = _session_id.to_sym
    driver = @drivers.delete _session_id
    @factory.release_driver(driver) unless driver.nil?
  end
  nil
end