Class: Capybara::Apparition::DevToolsProtocol::TargetManager
- Inherits:
-
Object
- Object
- Capybara::Apparition::DevToolsProtocol::TargetManager
- Defined in:
- lib/capybara/apparition/dev_tools_protocol/target_manager.rb
Instance Method Summary collapse
- #add(id, target) ⇒ Object
- #delete(id) ⇒ Object
- #get(id) ⇒ Object
-
#initialize(browser) ⇒ TargetManager
constructor
A new instance of TargetManager.
- #of_type(type) ⇒ Object
- #pages ⇒ Object
- #target?(id) ⇒ Boolean
- #window_handles ⇒ Object
Constructor Details
#initialize(browser) ⇒ TargetManager
Returns a new instance of TargetManager.
8 9 10 11 |
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 8 def initialize(browser) @browser = browser @targets = {} end |
Instance Method Details
#add(id, target) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 21 def add(id, target) raise ArgumentError, 'Target already exists' if @targets.key?(id) @targets[id] = if target.is_a? DevToolsProtocol::Target target else DevToolsProtocol::Target.new(@browser, target) end end |
#delete(id) ⇒ Object
31 32 33 |
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 31 def delete(id) @targets.delete(id) end |
#get(id) ⇒ Object
13 14 15 |
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 13 def get(id) @targets[id] end |
#of_type(type) ⇒ Object
17 18 19 |
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 17 def of_type(type) @targets.select { |_id, target| target.info['type'] == type } end |
#pages ⇒ Object
35 36 37 |
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 35 def pages @targets.values.select { |target| target.info['type'] == 'page' }.map(&:page) end |
#target?(id) ⇒ Boolean
39 40 41 |
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 39 def target?(id) @targets.key?(id) end |
#window_handles ⇒ Object
43 44 45 |
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 43 def window_handles @targets.values.select { |target| target.info['type'] == 'page' }.map(&:id).compact end |