couchrest 2.0.0 → 2.0.1
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.
- checksums.yaml +4 -4
 - data/.travis.yml +4 -1
 - data/README.md +8 -0
 - data/VERSION +1 -1
 - data/couchrest.gemspec +1 -1
 - data/history.txt +8 -0
 - data/lib/couchrest/connection.rb +12 -25
 - data/lib/couchrest/server.rb +4 -7
 - data/spec/couchrest/connection_spec.rb +0 -23
 - data/spec/couchrest/database_spec.rb +1 -1
 - data/spec/couchrest/server_spec.rb +9 -26
 - metadata +7 -7
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 75e93448320a86ecbcffd644ccb8afec72fdebf5
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c5ca7599c73e5d86978bc0093e8758864a27a8eb
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 3b025c928830967082f72203b020f303d794b5aca324c4e6acf3e4f353a7492ba975bae5d02f34f99aff6d59d0f91a137ec941ac3a09d05eb7a5dcca3ae13178
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: b2a1e1e2b507937ea8ccfa05a618a8e753ade2bda33a027ee817dfbae24b5256df93826f335132984d1f5350601f9d7140a8c8c9dcf8efcfb286477391e3ac49
         
     | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -12,6 +12,14 @@ For more complete modelling support based on ActiveModel, please checkout CouchR 
     | 
|
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
            Tested on latest stable release (1.6.X), but should work on older versions above 1.0. Also known to work on [Cloudant](http://cloudant.com).
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
      
 15 
     | 
    
         
            +
            ### Performance with Persistent Connections
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            When connecting to a CouchDB 1.X server from a Linux system, you may see a big drop in performance due to the change in library to HTTPClient using persistent connections. The issue is caused by the NOWAIT TCP configuration option causing sockets to hang as they wait for more information. The fix is a [simple configuration change](http://docs.couchdb.org/en/1.6.1/maintenance/performance.html#network):
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 20 
     | 
    
         
            +
            curl -X PUT "http://localhost:5984/_config/httpd/socket_options" -d '"[{nodelay, true}]"'
         
     | 
| 
      
 21 
     | 
    
         
            +
            ```
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
       15 
23 
     | 
    
         
             
            ## Install
         
     | 
| 
       16 
24 
     | 
    
         | 
| 
       17 
25 
     | 
    
         
             
                $ sudo gem install couchrest
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            2.0. 
     | 
| 
      
 1 
     | 
    
         
            +
            2.0.1
         
     | 
    
        data/couchrest.gemspec
    CHANGED
    
    | 
         @@ -34,6 +34,6 @@ Gem::Specification.new do |s| 
     | 
|
| 
       34 
34 
     | 
    
         
             
              s.add_development_dependency "bundler", "~> 1.3"
         
     | 
| 
       35 
35 
     | 
    
         
             
              # s.add_development_dependency "json", ">= 2.0.1"
         
     | 
| 
       36 
36 
     | 
    
         
             
              s.add_development_dependency "rspec", "~> 2.14.1"
         
     | 
| 
       37 
     | 
    
         
            -
              s.add_development_dependency "rake"
         
     | 
| 
      
 37 
     | 
    
         
            +
              s.add_development_dependency "rake", "< 11.0"
         
     | 
| 
       38 
38 
     | 
    
         
             
              s.add_development_dependency "webmock"
         
     | 
| 
       39 
39 
     | 
    
         
             
            end
         
     | 
    
        data/history.txt
    CHANGED
    
    | 
         @@ -1,3 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            == 2.0.1 - 2017-02-13
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Minor changes
         
     | 
| 
      
 4 
     | 
    
         
            +
              * Removing option for persistent connections, everything is now persistent
         
     | 
| 
      
 5 
     | 
    
         
            +
                (@samlown)
         
     | 
| 
      
 6 
     | 
    
         
            +
              * Simplifying connection handling and thread safety. Removed caching and lazy
         
     | 
| 
      
 7 
     | 
    
         
            +
                loading of connections. (@samlown)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       1 
9 
     | 
    
         
             
            == 2.0.0 - 2016-07-06
         
     | 
| 
       2 
10 
     | 
    
         | 
| 
       3 
11 
     | 
    
         
             
            * Minor changes
         
     | 
    
        data/lib/couchrest/connection.rb
    CHANGED
    
    | 
         @@ -5,7 +5,7 @@ module CouchRest 
     | 
|
| 
       5 
5 
     | 
    
         
             
              # Handle connections to the CouchDB server and provide a set of HTTP based methods to
         
     | 
| 
       6 
6 
     | 
    
         
             
              # perform requests.
         
     | 
| 
       7 
7 
     | 
    
         
             
              #
         
     | 
| 
       8 
     | 
    
         
            -
              # All connections are persistent 
     | 
| 
      
 8 
     | 
    
         
            +
              # All connections are persistent and thread safe. A connection cannot be re-used to connect to other servers once instantiated.
         
     | 
| 
       9 
9 
     | 
    
         
             
              #
         
     | 
| 
       10 
10 
     | 
    
         
             
              # Six types of REST requests are supported: get, put, post, delete, copy and head.
         
     | 
| 
       11 
11 
     | 
    
         
             
              #
         
     | 
| 
         @@ -16,7 +16,6 @@ module CouchRest 
     | 
|
| 
       16 
16 
     | 
    
         
             
              #
         
     | 
| 
       17 
17 
     | 
    
         
             
              # When initializing a connection, the following options are available:
         
     | 
| 
       18 
18 
     | 
    
         
             
              #
         
     | 
| 
       19 
     | 
    
         
            -
              #  * `:persistent` true by default, forces the HTTP connection to be persistent to ensure each request attempts to use the same TCP socket, especially important for SSL connections.
         
     | 
| 
       20 
19 
     | 
    
         
             
              #  * `:timeout` (or `:read_timeout`) and `:open_timeout` the time in miliseconds to wait for the request, see the [Net HTTP Persistent documentation](http://docs.seattlerb.org/net-http-persistent/Net/HTTP/Persistent.html#attribute-i-read_timeout) for more details.
         
     | 
| 
       21 
20 
     | 
    
         
             
              #  * `:verify_ssl` verify ssl certificates (or not)
         
     | 
| 
       22 
21 
     | 
    
         
             
              #  * `:ssl_client_cert`, `:ssl_client_key` parameters controlling ssl client certificate authentication
         
     | 
| 
         @@ -54,13 +53,13 @@ module CouchRest 
     | 
|
| 
       54 
53 
     | 
    
         | 
| 
       55 
54 
     | 
    
         
             
                SUCCESS_RESPONSE_CODES = [200, 201, 202, 204]
         
     | 
| 
       56 
55 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
                attr_reader :uri, :last_response, :options
         
     | 
| 
      
 56 
     | 
    
         
            +
                attr_reader :uri, :last_response, :options, :http
         
     | 
| 
       58 
57 
     | 
    
         | 
| 
       59 
58 
     | 
    
         
             
                def initialize(uri, options = {})
         
     | 
| 
       60 
59 
     | 
    
         
             
                  raise "CouchRest::Connection.new requires URI::HTTP(S) parameter" unless uri.is_a?(URI::HTTP)
         
     | 
| 
       61 
60 
     | 
    
         
             
                  @uri = clean_uri(uri)
         
     | 
| 
       62 
61 
     | 
    
         
             
                  @options = options.dup
         
     | 
| 
       63 
     | 
    
         
            -
                  @ 
     | 
| 
      
 62 
     | 
    
         
            +
                  @http = prepare_http_connection
         
     | 
| 
       64 
63 
     | 
    
         
             
                end
         
     | 
| 
       65 
64 
     | 
    
         | 
| 
       66 
65 
     | 
    
         
             
                # Send a GET request.
         
     | 
| 
         @@ -97,13 +96,7 @@ module CouchRest 
     | 
|
| 
       97 
96 
     | 
    
         
             
                  execute('HEAD', path, options)
         
     | 
| 
       98 
97 
     | 
    
         
             
                end
         
     | 
| 
       99 
98 
     | 
    
         | 
| 
       100 
     | 
    
         
            -
                 
     | 
| 
       101 
     | 
    
         
            -
                # connection or prepare a new one if none available.
         
     | 
| 
       102 
     | 
    
         
            -
                def http
         
     | 
| 
       103 
     | 
    
         
            -
                  @http || prepare_http_connection
         
     | 
| 
       104 
     | 
    
         
            -
                end
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
                protected
         
     | 
| 
      
 99 
     | 
    
         
            +
                private
         
     | 
| 
       107 
100 
     | 
    
         | 
| 
       108 
101 
     | 
    
         
             
                # Duplicate and remove excess baggage from the provided URI
         
     | 
| 
       109 
102 
     | 
    
         
             
                def clean_uri(uri)
         
     | 
| 
         @@ -116,12 +109,8 @@ module CouchRest 
     | 
|
| 
       116 
109 
     | 
    
         | 
| 
       117 
110 
     | 
    
         
             
                # Take a look at the options povided and try to apply them to the HTTP conneciton.
         
     | 
| 
       118 
111 
     | 
    
         
             
                def prepare_http_connection
         
     | 
| 
       119 
     | 
    
         
            -
                  conn =  
     | 
| 
       120 
     | 
    
         
            -
                   
     | 
| 
       121 
     | 
    
         
            -
                    conn = HTTPClient.new(options[:proxy] || self.class.proxy)
         
     | 
| 
       122 
     | 
    
         
            -
                    set_http_connection_options(conn, options)
         
     | 
| 
       123 
     | 
    
         
            -
                    @http = conn # Always set to last used connection
         
     | 
| 
       124 
     | 
    
         
            -
                  end
         
     | 
| 
      
 112 
     | 
    
         
            +
                  conn = HTTPClient.new(options[:proxy] || self.class.proxy)
         
     | 
| 
      
 113 
     | 
    
         
            +
                  set_http_connection_options(conn, options)
         
     | 
| 
       125 
114 
     | 
    
         
             
                  conn
         
     | 
| 
       126 
115 
     | 
    
         
             
                end
         
     | 
| 
       127 
116 
     | 
    
         | 
| 
         @@ -149,8 +138,6 @@ module CouchRest 
     | 
|
| 
       149 
138 
     | 
    
         
             
                end
         
     | 
| 
       150 
139 
     | 
    
         | 
| 
       151 
140 
     | 
    
         
             
                def execute(method, path, options, payload = nil, &block)
         
     | 
| 
       152 
     | 
    
         
            -
                  conn = prepare_http_connection
         
     | 
| 
       153 
     | 
    
         
            -
             
     | 
| 
       154 
141 
     | 
    
         
             
                  req = {
         
     | 
| 
       155 
142 
     | 
    
         
             
                    :method => method,
         
     | 
| 
       156 
143 
     | 
    
         
             
                    :uri    => uri + path
         
     | 
| 
         @@ -167,13 +154,13 @@ module CouchRest 
     | 
|
| 
       167 
154 
     | 
    
         
             
                    req[:body] = payload_from_doc(req, payload, options)
         
     | 
| 
       168 
155 
     | 
    
         
             
                  end
         
     | 
| 
       169 
156 
     | 
    
         | 
| 
       170 
     | 
    
         
            -
                  send_and_parse_response( 
     | 
| 
      
 157 
     | 
    
         
            +
                  send_and_parse_response(req, options, &block)
         
     | 
| 
       171 
158 
     | 
    
         
             
                end
         
     | 
| 
       172 
159 
     | 
    
         | 
| 
       173 
     | 
    
         
            -
                def send_and_parse_response( 
     | 
| 
      
 160 
     | 
    
         
            +
                def send_and_parse_response(req, opts, &block)
         
     | 
| 
       174 
161 
     | 
    
         
             
                  if block_given?
         
     | 
| 
       175 
162 
     | 
    
         
             
                    parser = CouchRest::StreamRowParser.new(opts[:continuous] ? :feed : :array)
         
     | 
| 
       176 
     | 
    
         
            -
                    response = send_request( 
     | 
| 
      
 163 
     | 
    
         
            +
                    response = send_request(req) do |chunk|
         
     | 
| 
       177 
164 
     | 
    
         
             
                      parser.parse(chunk) do |doc|
         
     | 
| 
       178 
165 
     | 
    
         
             
                        block.call(parse_body(doc, opts))
         
     | 
| 
       179 
166 
     | 
    
         
             
                      end
         
     | 
| 
         @@ -181,15 +168,15 @@ module CouchRest 
     | 
|
| 
       181 
168 
     | 
    
         
             
                    handle_response_code(response)
         
     | 
| 
       182 
169 
     | 
    
         
             
                    parse_body(parser.header, opts)
         
     | 
| 
       183 
170 
     | 
    
         
             
                  else
         
     | 
| 
       184 
     | 
    
         
            -
                    response = send_request( 
     | 
| 
      
 171 
     | 
    
         
            +
                    response = send_request(req)
         
     | 
| 
       185 
172 
     | 
    
         
             
                    handle_response_code(response)
         
     | 
| 
       186 
173 
     | 
    
         
             
                    parse_response(response, opts)
         
     | 
| 
       187 
174 
     | 
    
         
             
                  end
         
     | 
| 
       188 
175 
     | 
    
         
             
                end
         
     | 
| 
       189 
176 
     | 
    
         | 
| 
       190 
177 
     | 
    
         
             
                # Send request, and leave a reference to the response for debugging purposes
         
     | 
| 
       191 
     | 
    
         
            -
                def send_request( 
     | 
| 
       192 
     | 
    
         
            -
                  @last_response =  
     | 
| 
      
 178 
     | 
    
         
            +
                def send_request(req, &block)
         
     | 
| 
      
 179 
     | 
    
         
            +
                  @last_response = @http.request(req.delete(:method), req.delete(:uri), req, &block)
         
     | 
| 
       193 
180 
     | 
    
         
             
                end
         
     | 
| 
       194 
181 
     | 
    
         | 
| 
       195 
182 
     | 
    
         
             
                def handle_response_code(response)
         
     | 
    
        data/lib/couchrest/server.rb
    CHANGED
    
    | 
         @@ -12,6 +12,9 @@ module CouchRest 
     | 
|
| 
       12 
12 
     | 
    
         
             
                # saving new documents. See also #next_uuid.
         
     | 
| 
       13 
13 
     | 
    
         
             
                attr_reader :uuids
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
      
 15 
     | 
    
         
            +
                # Connection object prepared on initialization
         
     | 
| 
      
 16 
     | 
    
         
            +
                attr_reader :connection
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       15 
18 
     | 
    
         
             
                # The connection options we should use to connect with
         
     | 
| 
       16 
19 
     | 
    
         
             
                attr_reader :connection_options
         
     | 
| 
       17 
20 
     | 
    
         | 
| 
         @@ -26,13 +29,7 @@ module CouchRest 
     | 
|
| 
       26 
29 
     | 
    
         
             
                    @connection_options = opts
         
     | 
| 
       27 
30 
     | 
    
         
             
                  end
         
     | 
| 
       28 
31 
     | 
    
         
             
                  @uuid_batch_count ||= 1000
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                # Lazy load the connection for the current thread
         
     | 
| 
       32 
     | 
    
         
            -
                def connection
         
     | 
| 
       33 
     | 
    
         
            -
                  conns = (Thread.current['couchrest.connections'] ||= {})
         
     | 
| 
       34 
     | 
    
         
            -
                  key = "#{uri.to_s}##{connection_options.hash}"
         
     | 
| 
       35 
     | 
    
         
            -
                  conns[key] ||= Connection.new(uri, connection_options)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  @connection = Connection.new(uri, connection_options)
         
     | 
| 
       36 
33 
     | 
    
         
             
                end
         
     | 
| 
       37 
34 
     | 
    
         | 
| 
       38 
35 
     | 
    
         
             
                # Lists all databases on the server
         
     | 
| 
         @@ -172,29 +172,6 @@ describe CouchRest::Connection do 
     | 
|
| 
       172 
172 
     | 
    
         
             
                    expect(res['name']).to eql(doc['name'])
         
     | 
| 
       173 
173 
     | 
    
         
             
                  end
         
     | 
| 
       174 
174 
     | 
    
         | 
| 
       175 
     | 
    
         
            -
                  context "persistency" do
         
     | 
| 
       176 
     | 
    
         
            -
                    before :each do
         
     | 
| 
       177 
     | 
    
         
            -
                      stub_request(:get, "http://mock/db/test-doc")
         
     | 
| 
       178 
     | 
    
         
            -
                        .to_return(:body => doc.to_json)
         
     | 
| 
       179 
     | 
    
         
            -
                    end
         
     | 
| 
       180 
     | 
    
         
            -
             
     | 
| 
       181 
     | 
    
         
            -
                    it "should have persistency enabled by default" do
         
     | 
| 
       182 
     | 
    
         
            -
                      conn = CouchRest::Connection.new(mock_uri)
         
     | 
| 
       183 
     | 
    
         
            -
                      expect(conn.options[:persistent]).to be_true
         
     | 
| 
       184 
     | 
    
         
            -
                      http1 = conn.http
         
     | 
| 
       185 
     | 
    
         
            -
                      conn.get(mock_uri.path)
         
     | 
| 
       186 
     | 
    
         
            -
                      expect(conn.http.object_id).to eql(http1.object_id)
         
     | 
| 
       187 
     | 
    
         
            -
                    end
         
     | 
| 
       188 
     | 
    
         
            -
             
     | 
| 
       189 
     | 
    
         
            -
                    it "should disable persistency" do
         
     | 
| 
       190 
     | 
    
         
            -
                      conn = CouchRest::Connection.new(mock_uri, :persistent => false)
         
     | 
| 
       191 
     | 
    
         
            -
                      expect(conn.options[:persistent]).to be_false
         
     | 
| 
       192 
     | 
    
         
            -
                      http1 = conn.http
         
     | 
| 
       193 
     | 
    
         
            -
                      conn.get(mock_uri.path)
         
     | 
| 
       194 
     | 
    
         
            -
                      expect(conn.http.object_id).to_not eql(http1.object_id)
         
     | 
| 
       195 
     | 
    
         
            -
                    end
         
     | 
| 
       196 
     | 
    
         
            -
                  end
         
     | 
| 
       197 
     | 
    
         
            -
             
     | 
| 
       198 
175 
     | 
    
         
             
                  it "should raise exception if document missing" do
         
     | 
| 
       199 
176 
     | 
    
         
             
                    uri = URI(DB.to_s + "/missingdoc")
         
     | 
| 
       200 
177 
     | 
    
         
             
                    conn = CouchRest::Connection.new(uri)
         
     | 
| 
         @@ -51,35 +51,18 @@ describe CouchRest::Server do 
     | 
|
| 
       51 
51 
     | 
    
         
             
                  expect(server.connection).to be_a(CouchRest::Connection)
         
     | 
| 
       52 
52 
     | 
    
         
             
                end
         
     | 
| 
       53 
53 
     | 
    
         | 
| 
       54 
     | 
    
         
            -
                it "should  
     | 
| 
       55 
     | 
    
         
            -
                  server.connection 
     | 
| 
       56 
     | 
    
         
            -
                   
     | 
| 
       57 
     | 
    
         
            -
                   
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
                  Thread.current['couchrest.connections'] = {}
         
     | 
| 
       62 
     | 
    
         
            -
                  srv = CouchRest::Server.new(mock_url, :persistent => false)
         
     | 
| 
       63 
     | 
    
         
            -
                  srv.connection # instantiate
         
     | 
| 
       64 
     | 
    
         
            -
                  conns = Thread.current['couchrest.connections']
         
     | 
| 
       65 
     | 
    
         
            -
                  expect(srv.connection.object_id).to eql(conns[conns.keys.last].object_id)
         
     | 
| 
       66 
     | 
    
         
            -
                  expect(conns.length).to eql(1)
         
     | 
| 
       67 
     | 
    
         
            -
                end
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
                it "should not cache connection in current thread with different options" do
         
     | 
| 
       70 
     | 
    
         
            -
                  conns = Thread.current['couchrest.connections'] = {}
         
     | 
| 
       71 
     | 
    
         
            -
                  srv = CouchRest::Server.new(mock_url, :persistent => true)
         
     | 
| 
       72 
     | 
    
         
            -
                  srv.connection # init
         
     | 
| 
       73 
     | 
    
         
            -
                  srv2 = CouchRest::Server.new(mock_url, :persistent => false)
         
     | 
| 
       74 
     | 
    
         
            -
                  srv2.connection # init
         
     | 
| 
       75 
     | 
    
         
            -
                  expect(conns.length).to eql(2)
         
     | 
| 
       76 
     | 
    
         
            -
                  expect(srv.connection.object_id).to_not eql(srv2.connection.object_id)
         
     | 
| 
      
 54 
     | 
    
         
            +
                it "should be shared by all threads" do
         
     | 
| 
      
 55 
     | 
    
         
            +
                  conn = server.connection
         
     | 
| 
      
 56 
     | 
    
         
            +
                  conn2 = nil
         
     | 
| 
      
 57 
     | 
    
         
            +
                  Thread.new {
         
     | 
| 
      
 58 
     | 
    
         
            +
                    conn2 = server.connection
         
     | 
| 
      
 59 
     | 
    
         
            +
                  }.join
         
     | 
| 
      
 60 
     | 
    
         
            +
                  expect(conn.object_id).to eql(conn2.object_id)
         
     | 
| 
       77 
61 
     | 
    
         
             
                end
         
     | 
| 
       78 
62 
     | 
    
         | 
| 
       79 
63 
     | 
    
         
             
                it "should pass configuration options to the connection" do
         
     | 
| 
       80 
     | 
    
         
            -
                   
     | 
| 
       81 
     | 
    
         
            -
                  srv 
     | 
| 
       82 
     | 
    
         
            -
                  expect(srv.connection.options[:persistent]).to be_false
         
     | 
| 
      
 64 
     | 
    
         
            +
                  srv = CouchRest::Server.new(mock_url, :timeout => 120)
         
     | 
| 
      
 65 
     | 
    
         
            +
                  expect(srv.connection.options[:timeout]).to eql(120)
         
     | 
| 
       83 
66 
     | 
    
         
             
                end
         
     | 
| 
       84 
67 
     | 
    
         | 
| 
       85 
68 
     | 
    
         
             
              end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: couchrest
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.0.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - J. Chris Anderson
         
     | 
| 
         @@ -12,7 +12,7 @@ authors: 
     | 
|
| 
       12 
12 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       14 
14 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       15 
     | 
    
         
            -
            date:  
     | 
| 
      
 15 
     | 
    
         
            +
            date: 2017-02-13 00:00:00.000000000 Z
         
     | 
| 
       16 
16 
     | 
    
         
             
            dependencies:
         
     | 
| 
       17 
17 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       18 
18 
     | 
    
         
             
              name: httpclient
         
     | 
| 
         @@ -88,16 +88,16 @@ dependencies: 
     | 
|
| 
       88 
88 
     | 
    
         
             
              name: rake
         
     | 
| 
       89 
89 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       90 
90 
     | 
    
         
             
                requirements:
         
     | 
| 
       91 
     | 
    
         
            -
                - - " 
     | 
| 
      
 91 
     | 
    
         
            +
                - - "<"
         
     | 
| 
       92 
92 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       93 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 93 
     | 
    
         
            +
                    version: '11.0'
         
     | 
| 
       94 
94 
     | 
    
         
             
              type: :development
         
     | 
| 
       95 
95 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       96 
96 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       97 
97 
     | 
    
         
             
                requirements:
         
     | 
| 
       98 
     | 
    
         
            -
                - - " 
     | 
| 
      
 98 
     | 
    
         
            +
                - - "<"
         
     | 
| 
       99 
99 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       100 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 100 
     | 
    
         
            +
                    version: '11.0'
         
     | 
| 
       101 
101 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       102 
102 
     | 
    
         
             
              name: webmock
         
     | 
| 
       103 
103 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -206,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       206 
206 
     | 
    
         
             
                  version: 1.3.1
         
     | 
| 
       207 
207 
     | 
    
         
             
            requirements: []
         
     | 
| 
       208 
208 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       209 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 209 
     | 
    
         
            +
            rubygems_version: 2.6.8
         
     | 
| 
       210 
210 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       211 
211 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       212 
212 
     | 
    
         
             
            summary: Lean and RESTful interface to CouchDB.
         
     |