Sha256: 865609ee1b524e418f452231c7ea1d2b34beb1d66d73165f70d1488f71458403

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

$LOAD_PATH.unshift("#{File.dirname(__FILE__)}")
require 'capybara'
require 'page_magic/exceptions'
require 'page_magic/session'
require 'page_magic/instance_methods'
require 'page_magic/elements'
require 'page_magic/element_context'
require 'page_magic/element'
require 'page_magic/drivers'

# module PageMagic - PageMagic is an api for modelling pages in a website.
module PageMagic
  class << self
    def drivers
      @drivers ||= Drivers.new.tap(&:load)
    end

    def session(application: nil, browser: :rack_test, url:, options: {})
      driver = drivers.find(browser)
      fail UnspportedBrowserException unless driver

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

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

    def included(clazz)
      clazz.class_eval do
        def self.url(url = nil)
          @url = url if url
          @url
        end

        include(InstanceMethods)
        extend(Elements)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
page_magic-1.0.0.alpha18 lib/page_magic.rb