Class: PageMagic::Drivers

Inherits:
Object
  • Object
show all
Defined in:
lib/page_magic/drivers.rb

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, options, browser|
  require 'watir-webdriver'
  Capybara::Selenium::Driver.new(app, options.dup.merge(browser: browser))
end
RackTest =
PageMagic::Driver.new(:rack_test) do |app, options|
  Capybara::RackTest::Driver.new(app, options)
end
Poltergeist =
PageMagic::Driver.new(:poltergeist) do |app, options|
  require 'capybara/poltergeist'
  Capybara::Poltergeist::Driver.new(app, options)
end

Instance Method Summary collapse

Instance Method Details

#==(other) ⇒ Boolean

returns true if this driver instance is equal to the supplied object

Parameters:

  • other (Object)

    subject of equality check

Returns:

  • (Boolean)

    true if the object is a match



37
38
39
# File 'lib/page_magic/drivers.rb', line 37

def ==(other)
  other.is_a?(Drivers) && all == other.all
end

#allObject



6
7
8
# File 'lib/page_magic/drivers.rb', line 6

def all
  @all ||= []
end

#find(browser) ⇒ Object

Find a driver definition based on its registered name

Parameters:

  • browser (Symbol)

    registered name of the required browser



12
13
14
# File 'lib/page_magic/drivers.rb', line 12

def find(browser)
  all.find { |driver| driver.support?(browser) }
end

#load(path = "#{__dir__}/drivers") ⇒ Object

Loads drivers defined in files at the given path

Parameters:

  • path (String) (defaults to: "#{__dir__}/drivers")

    where the drivers are located



18
19
20
21
22
23
24
25
26
# File 'lib/page_magic/drivers.rb', line 18

def load(path = "#{__dir__}/drivers")
  require 'active_support/inflector'

  Dir["#{path}/*.rb"].each do |driver_file|
    require driver_file
    driver_name = File.basename(driver_file)[/(.*)\.rb$/, 1]
    register self.class.const_get(driver_name.classify)
  end
end

#register(driver) ⇒ Object

Make a driver available for selection when creating calling PageMagic.session

Parameters:

  • driver (Driver)

    driver definition



30
31
32
# File 'lib/page_magic/drivers.rb', line 30

def register(driver)
  all << driver
end