Sha256: 607d685e4773d26abf8df1757761ed4315ebc1d2dcc762ffa0fd551c8a79bbe5

Contents?: true

Size: 1.51 KB

Versions: 5

Compression:

Stored size: 1.51 KB

Contents

require "tapestry/version"
require "tapestry/element"
require "tapestry/factory"
require "tapestry/interface"
require "tapestry/attribute"
require "tapestry/ready"

require "tapestry/extensions/dom_observer"
require "tapestry/extensions/data_setter"
require "tapestry/extensions/watir_elements"

require "watir"

module Tapestry
  def self.included(caller)
    caller.extend Tapestry::Element
    caller.extend Tapestry::Interface::Page::Attribute
    caller.__send__ :include, Tapestry::Ready
    caller.__send__ :include, Tapestry::Locator
    caller.__send__ :include, Tapestry::Interface::Page
    caller.__send__ :include, Tapestry::DataSetter
  end

  def initialize(browser = nil, &block)
    @browser = Tapestry.browser unless Tapestry.browser.nil?
    @browser = browser if Tapestry.browser.nil?
    begin_with if respond_to?(:begin_with)
    instance_eval(&block) if block
  end

  # This accessor is needed so that internal API calls, like `markup` or
  # `text`, have access to the browser instance. This is an instance-level
  # access to the browser.
  attr_accessor :browser

  class << self
    # This accessor is needed so that Tapestry itself can provide a browser
    # reference to indicate connection to WebDriver. This is a class-level
    # access to the browser.
    attr_accessor :browser

    def set_browser(app = :chrome, *args)
      @browser = Watir::Browser.new(app, *args)
      Tapestry.browser = @browser
    end

    alias start_browser set_browser

    def quit_browser
      @browser.quit
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tapestry-0.6.0 lib/tapestry.rb
tapestry-0.5.0 lib/tapestry.rb
tapestry-0.4.0 lib/tapestry.rb
tapestry-0.3.0 lib/tapestry.rb
tapestry-0.2.0 lib/tapestry.rb