capybara-typhoeus 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/capybara/driver/typhoeus_driver.rb +18 -5
 - metadata +6 -6
 
| 
         @@ -8,7 +8,7 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base 
     | 
|
| 
       8 
8 
     | 
    
         
             
              end
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              attr_writer :as, :with_headers, :with_params, :with_options
         
     | 
| 
       11 
     | 
    
         
            -
              attr_reader :app, :rack_server, :options, :response
         
     | 
| 
      
 11 
     | 
    
         
            +
              attr_reader :app, :rack_server, :options, :response, :login, :password
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
              def client
         
     | 
| 
       14 
14 
     | 
    
         
             
                @client ||= Typhoeus::Hydra.new
         
     | 
| 
         @@ -88,7 +88,7 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base 
     | 
|
| 
       88 
88 
     | 
    
         
             
              alias_method :source, :body
         
     | 
| 
       89 
89 
     | 
    
         | 
| 
       90 
90 
     | 
    
         
             
              def response_headers
         
     | 
| 
       91 
     | 
    
         
            -
                response. 
     | 
| 
      
 91 
     | 
    
         
            +
                response.headers
         
     | 
| 
       92 
92 
     | 
    
         
             
              end
         
     | 
| 
       93 
93 
     | 
    
         | 
| 
       94 
94 
     | 
    
         
             
              def status_code
         
     | 
| 
         @@ -103,6 +103,8 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base 
     | 
|
| 
       103 
103 
     | 
    
         
             
                @client = nil
         
     | 
| 
       104 
104 
     | 
    
         
             
                @response = nil
         
     | 
| 
       105 
105 
     | 
    
         
             
                @current_uri = nil
         
     | 
| 
      
 106 
     | 
    
         
            +
                @login = nil
         
     | 
| 
      
 107 
     | 
    
         
            +
                @password = nil
         
     | 
| 
       106 
108 
     | 
    
         
             
                reset_cache
         
     | 
| 
       107 
109 
     | 
    
         
             
              end
         
     | 
| 
       108 
110 
     | 
    
         | 
| 
         @@ -128,13 +130,27 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base 
     | 
|
| 
       128 
130 
     | 
    
         
             
                @with_options ||= {}
         
     | 
| 
       129 
131 
     | 
    
         
             
              end
         
     | 
| 
       130 
132 
     | 
    
         | 
| 
      
 133 
     | 
    
         
            +
              def authenticate_with(login, password)
         
     | 
| 
      
 134 
     | 
    
         
            +
                @login, @password = login, password
         
     | 
| 
      
 135 
     | 
    
         
            +
              end
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
              def auth?
         
     | 
| 
      
 138 
     | 
    
         
            +
                login && password
         
     | 
| 
      
 139 
     | 
    
         
            +
              end
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
       131 
141 
     | 
    
         
             
              def process(method, path, params = {}, headers = {})
         
     | 
| 
       132 
142 
     | 
    
         
             
                @current_uri = url path
         
     | 
| 
       133 
143 
     | 
    
         
             
                opts = {
         
     | 
| 
       134 
144 
     | 
    
         
             
                  :method => method,
         
     | 
| 
       135 
145 
     | 
    
         
             
                  :headers => with_headers.merge(headers.merge("Content-Type" => as, "Accept" => as)),
         
     | 
| 
       136 
146 
     | 
    
         
             
                  :timeout => 2000, # 2 seconds
         
     | 
| 
      
 147 
     | 
    
         
            +
                  :forbid_reuse => true,
         
     | 
| 
       137 
148 
     | 
    
         
             
                }
         
     | 
| 
      
 149 
     | 
    
         
            +
                opts.merge!({
         
     | 
| 
      
 150 
     | 
    
         
            +
                  :username => login,
         
     | 
| 
      
 151 
     | 
    
         
            +
                  :password => password,
         
     | 
| 
      
 152 
     | 
    
         
            +
                  :auth_method => :basic,
         
     | 
| 
      
 153 
     | 
    
         
            +
                }) if auth?
         
     | 
| 
       138 
154 
     | 
    
         
             
                if params.is_a?(Hash)
         
     | 
| 
       139 
155 
     | 
    
         
             
                  opts[:params] = with_params.merge(params)
         
     | 
| 
       140 
156 
     | 
    
         
             
                else
         
     | 
| 
         @@ -144,11 +160,8 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base 
     | 
|
| 
       144 
160 
     | 
    
         
             
                request = Typhoeus::Request.new @current_uri, with_options.merge(opts)
         
     | 
| 
       145 
161 
     | 
    
         
             
                client.queue request
         
     | 
| 
       146 
162 
     | 
    
         
             
                client.run
         
     | 
| 
       147 
     | 
    
         
            -
                # $stdout.puts request.inspect
         
     | 
| 
       148 
163 
     | 
    
         
             
                @response = request.response
         
     | 
| 
       149 
     | 
    
         
            -
                # $stdout.puts response.inspect
         
     | 
| 
       150 
164 
     | 
    
         
             
                if @response.timed_out?
         
     | 
| 
       151 
     | 
    
         
            -
                  `open #{@current_uri}`
         
     | 
| 
       152 
165 
     | 
    
         
             
                  $stderr.puts "#{method.to_s.upcase} #{@current_uri}: time out"
         
     | 
| 
       153 
166 
     | 
    
         
             
                elsif @response.code==0
         
     | 
| 
       154 
167 
     | 
    
         
             
                  $stderr.puts "#{method.to_s.upcase} #{@current_uri}: #{@response.curl_error_message}"
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: capybara-typhoeus
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.5
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -33,17 +33,17 @@ dependencies: 
     | 
|
| 
       33 
33 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       34 
34 
     | 
    
         
             
                none: false
         
     | 
| 
       35 
35 
     | 
    
         
             
                requirements:
         
     | 
| 
       36 
     | 
    
         
            -
                - -  
     | 
| 
      
 36 
     | 
    
         
            +
                - - '='
         
     | 
| 
       37 
37 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       38 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 38 
     | 
    
         
            +
                    version: 0.5.0
         
     | 
| 
       39 
39 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       40 
40 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       41 
41 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       42 
42 
     | 
    
         
             
                none: false
         
     | 
| 
       43 
43 
     | 
    
         
             
                requirements:
         
     | 
| 
       44 
     | 
    
         
            -
                - -  
     | 
| 
      
 44 
     | 
    
         
            +
                - - '='
         
     | 
| 
       45 
45 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       46 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 46 
     | 
    
         
            +
                    version: 0.5.0
         
     | 
| 
       47 
47 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       48 
48 
     | 
    
         
             
              name: yajl-ruby
         
     | 
| 
       49 
49 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -152,7 +152,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       152 
152 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       153 
153 
     | 
    
         
             
                  segments:
         
     | 
| 
       154 
154 
     | 
    
         
             
                  - 0
         
     | 
| 
       155 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 155 
     | 
    
         
            +
                  hash: 3275742578761015137
         
     | 
| 
       156 
156 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       157 
157 
     | 
    
         
             
              none: false
         
     | 
| 
       158 
158 
     | 
    
         
             
              requirements:
         
     |