Class: Async::WebDriver::Bridge::Pool::BridgeController::SessionCache

Inherits:
Object
  • Object
show all
Defined in:
lib/async/webdriver/bridge/pool.rb

Instance Method Summary collapse

Constructor Details

#initialize(driver, capabilities) ⇒ SessionCache

Returns a new instance of SessionCache.



33
34
35
36
37
38
39
# File 'lib/async/webdriver/bridge/pool.rb', line 33

def initialize(driver, capabilities)
	@driver = driver
	@capabilities = capabilities
	
	@client = driver.client
	@sessions = []
end

Instance Method Details

#acquireObject



69
70
71
72
73
74
75
76
77
78
79
# File 'lib/async/webdriver/bridge/pool.rb', line 69

def acquire
	if @sessions.empty?
		session = @client.post("session", {capabilities: @capabilities})
		session[:cache] = self
		session[:endpoint] = @driver.endpoint
		
		return session
	else
		return @sessions.pop
	end
end

#closeObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/async/webdriver/bridge/pool.rb', line 49

def close
	if @driver
		@driver.close
		@driver = nil
	end
	
	if @client
		@client.close
		@client = nil
	end
	
	if @sessions
		@sessions = nil
	end
end

#concurrencyObject



65
66
67
# File 'lib/async/webdriver/bridge/pool.rb', line 65

def concurrency
	@driver.concurrency
end

#release(session) ⇒ Object



81
82
83
# File 'lib/async/webdriver/bridge/pool.rb', line 81

def release(session)
	@sessions.push(session)
end

#reusable?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/async/webdriver/bridge/pool.rb', line 45

def reusable?
	@driver&.reusable?
end

#viable?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/async/webdriver/bridge/pool.rb', line 41

def viable?
	@driver&.viable?
end