Class: PageMagic::Drivers
Overview
class Drivers - creates an object that can be used to hold driver definitions These PageMagic gets the user's chosen driver from this object.
Constant Summary collapse
- Selenium =
PageMagic::Driver.new(:chrome, :firefox) do |app, , browser| require 'capybara/selenium/driver' Capybara::Selenium::Driver.new(app, **.dup.merge(browser: browser)) end
- RackTest =
PageMagic::Driver.new(:rack_test) do |app, | Capybara::RackTest::Driver.new(app, **) end
- Poltergeist =
PageMagic::Driver.new(:poltergeist) do |app, | require 'capybara/poltergeist' Capybara::Poltergeist::Driver.new(app, ) end
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
returns true if this driver instance is equal to the supplied object.
- #all ⇒ Object
-
#find(browser) ⇒ Object
Find a driver definition based on its registered name.
-
#load(path = "#{__dir__}/drivers") ⇒ Object
Loads drivers defined in files at the given path.
-
#register(driver) ⇒ Object
Make a driver available for selection when creating calling session.
Instance Method Details
#==(other) ⇒ Boolean
returns true if this driver instance is equal to the supplied object
38 39 40 |
# File 'lib/page_magic/drivers.rb', line 38 def ==(other) other.respond_to?(:all) && all == other.all end |
#all ⇒ Object
9 10 11 |
# File 'lib/page_magic/drivers.rb', line 9 def all @all ||= [] end |
#find(browser) ⇒ Object
Find a driver definition based on its registered name
15 16 17 |
# File 'lib/page_magic/drivers.rb', line 15 def find(browser) all.find { |driver| driver.support?(browser) } end |
#load(path = "#{__dir__}/drivers") ⇒ Object
Loads drivers defined in files at the given path
21 22 23 24 25 26 27 |
# File 'lib/page_magic/drivers.rb', line 21 def load(path = "#{__dir__}/drivers") Dir["#{path}/*.rb"].sort.each do |driver_file| require driver_file driver_name = File.basename(driver_file)[/(.*)\.rb$/, 1] register self.class.const_get(Utils::String.classify(driver_name)) end end |
#register(driver) ⇒ Object
Make a driver available for selection when creating calling PageMagic.session
31 32 33 |
# File 'lib/page_magic/drivers.rb', line 31 def register(driver) all << driver end |