Sha256: 46f1202b6b62a7c6d1bb10bb70c9420dd337c2a3d4dc452bc28813776a2c782b
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
require 'mechanize' class Capybara::Driver::Mechanize < Capybara::Driver::RackTest def initialize(*args) super @agent = ::Mechanize.new end def visit(url) get url end def response response_proxy || super end def get(url, params = {}, headers = {}) process_remote_request(:get, url) || super end def post(url, params = {}, headers = {}) process_remote_request(:post, url, params, headers) || super end def remote?(url) if !Capybara.app_host.nil? true elsif Capybara.default_host.nil? false else host = URI.parse(url).host !(host.nil? || host.include?(Capybara.default_host)) end end private def process_remote_request(method, url, *options) if remote?(url) reset_cache @agent.send *( [method, url] + options) follow_redirects! true end end def response_proxy ResponseProxy.new(@agent.current_page) if @agent.current_page end class ResponseProxy def initialize(page) @page = page end def redirect? %w(301 302).include?(@page.code) end def method_missing(method, *args, &block) @page.send(method, *args, &block) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
capybara-mechanize-0.1.0 | lib/capybara/driver/mechanize.rb |