Sha256: 7fec1293414a7ffce10e1b7a033f88258bb8675dc8540a4b25e2db7f248a5773

Contents?: true

Size: 1.12 KB

Versions: 12

Compression:

Stored size: 1.12 KB

Contents

require 'capybara'

module Capybara
  class << self
    attr_writer :default_driver, :current_driver, :javascript_driver

    attr_accessor :app

    def default_driver
      @default_driver || :rack_test
    end

    def current_driver
      @current_driver || default_driver
    end
    alias_method :mode, :current_driver

    def javascript_driver
      @javascript_driver || :selenium
    end

    def use_default_driver
      @current_driver = nil
    end

    def current_session
      session_pool["#{current_driver}#{app.object_id}"] ||= Capybara::Session.new(current_driver, app)
    end

    def current_session?
      session_pool.has_key?("#{current_driver}#{app.object_id}")
    end

    def reset_sessions!
      session_pool.each { |mode, session| session.cleanup! }
      @session_pool = nil
    end

  private

    def session_pool
      @session_pool ||= {}
    end
  end

  extend(self)

  def page
    Capybara.current_session
  end

  Session::DSL_METHODS.each do |method|
    class_eval <<-RUBY, __FILE__, __LINE__+1
      def #{method}(*args, &block)
        page.#{method}(*args, &block)
      end
    RUBY
  end

end

Version data entries

12 entries across 12 versions & 6 rubygems

Version Path
david-capybara-0.3.9.1 lib/capybara/dsl.rb
capybara-0.3.9 lib/capybara/dsl.rb
david-capybara-0.3.8 lib/capybara/dsl.rb
katzil-capybara-0.3.8 lib/capybara/dsl.rb
capybara-0.3.8 lib/capybara/dsl.rb
pr0d1r2-capybara-0.3.7 lib/capybara/dsl.rb
capybara-0.3.7 lib/capybara/dsl.rb
capybara-0.3.6 lib/capybara/dsl.rb
h13ronim-capybara-0.3.0.1 lib/capybara/dsl.rb
capybara-0.3.5 lib/capybara/dsl.rb
bjeanes-capybara-0.3.2 lib/capybara/dsl.rb
bjeanes-capybara-0.3.1 lib/capybara/dsl.rb