Class: Crabfarm::DriverPool

Inherits:
Object
  • Object
show all
Defined in:
lib/crabfarm/driver_pool.rb

Instance Method Summary collapse

Constructor Details

#initialize(_factory) ⇒ DriverPool

Returns a new instance of DriverPool.



4
5
6
7
# File 'lib/crabfarm/driver_pool.rb', line 4

def initialize(_factory)
  @factory = _factory
  @drivers = Hash.new
end

Instance Method Details

#driver(_session_id = nil) ⇒ Object



9
10
11
12
13
14
# 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

#releaseObject



27
28
29
# File 'lib/crabfarm/driver_pool.rb', line 27

def release
  reset
end

#reset(_session_id = nil) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/crabfarm/driver_pool.rb', line 16

def reset(_session_id=nil)
  if _session_id.nil?
    @drivers.each { |k, d| @factory.release_driver(k, d) }
    @drivers = Hash.new
  else
    _session_id = _session_id.to_sym
    driver = @drivers.delete _session_id
    @factory.release_driver(_session_id, driver) unless driver.nil?
  end
end