module PageMagic

module PageMagic - PageMagic is an api for modelling pages in a website.

Constants

VERSION

Public Class Methods

drivers() click to toggle source

@return [Drivers] registered drivers

# File lib/page_magic.rb, line 28
def drivers
  @drivers ||= Drivers.new.tap(&:load)
end
included(clazz) click to toggle source
# File lib/page_magic.rb, line 32
def included(clazz)
  clazz.class_eval do
    include(InstanceMethods)
    extend ClassMethods
    extend Elements
  end
end
mapping(path = nil, parameters: nil, fragment: nil) click to toggle source

Create a more complex mapping to identify when a page should be loaded @example

PageMagic.mapping '/', parameters: {project: 'page_magic'}, fragment: 'display'

@see Matchers#initialize

# File lib/page_magic.rb, line 44
def mapping(path = nil, parameters: nil, fragment: nil)
  Mapping.new(path, parameters: parameters, fragment: fragment)
end
session(session: nil, url: nil, application: nil, browser: :rack_test, options: {}) click to toggle source

Visit this page based on the class level registered url @param [Object] application rack application (optional) @param [Symbol] browser name of browser @param [String] url url to start the session on @param [Hash] options browser driver specific options @param [Capybara::Session] session - use you own already configure capybara session e.g. Capybara.current_session @return [Session] configured session

# File lib/page_magic.rb, line 55
def session(session: nil, url: nil, application: nil, browser: :rack_test, options: {})
  session ||= begin
    driver = drivers.find(browser)
    raise UnsupportedBrowserException unless driver

    Capybara.register_driver browser do |app|
      driver.build(app, browser: browser, options: options)
    end

    Capybara::Session.new(browser, application)
  end

  Session.new(session, url)
end