Class: Async::WebDriver::Bridge::Pool::BridgeController::SessionCache
- Inherits:
-
Object
- Object
- Async::WebDriver::Bridge::Pool::BridgeController::SessionCache
- Defined in:
- lib/async/webdriver/bridge/pool.rb
Instance Method Summary collapse
- #acquire ⇒ Object
- #close ⇒ Object
- #concurrency ⇒ Object
-
#initialize(driver, capabilities) ⇒ SessionCache
constructor
A new instance of SessionCache.
- #release(session) ⇒ Object
- #reusable? ⇒ Boolean
- #viable? ⇒ Boolean
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
#acquire ⇒ Object
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 |
#close ⇒ Object
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 |
#concurrency ⇒ Object
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
45 46 47 |
# File 'lib/async/webdriver/bridge/pool.rb', line 45 def reusable? @driver&.reusable? end |
#viable? ⇒ Boolean
41 42 43 |
# File 'lib/async/webdriver/bridge/pool.rb', line 41 def viable? @driver&.viable? end |