mongo 1.0.6 → 1.0.7
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/HISTORY +6 -0
 - data/README.rdoc +1 -1
 - data/Rakefile +5 -0
 - data/lib/mongo.rb +1 -1
 - data/lib/mongo/collection.rb +1 -1
 - data/lib/mongo/connection.rb +8 -3
 - data/lib/mongo/db.rb +33 -19
 - data/mongo.gemspec +1 -1
 - data/test/{slave_connection_test.rb → auxillary/slave_connection_test.rb} +5 -5
 - data/test/collection_test.rb +6 -19
 - data/test/connection_test.rb +1 -1
 - data/test/cursor_test.rb +5 -5
 - data/test/db_api_test.rb +1 -1
 - data/test/db_test.rb +12 -24
 - data/test/replica_sets/replication_ack_test.rb +71 -0
 - data/test/test_helper.rb +2 -0
 - metadata +6 -44
 
    
        data/HISTORY
    CHANGED
    
    
    
        data/README.rdoc
    CHANGED
    
    | 
         @@ -165,7 +165,7 @@ or handle reconnecting when passenger forks a new process: 
     | 
|
| 
       165 
165 
     | 
    
         
             
              if defined?(PhusionPassenger)
         
     | 
| 
       166 
166 
     | 
    
         
             
                PhusionPassenger.on_event(:starting_worker_process) do |forked|
         
     | 
| 
       167 
167 
     | 
    
         
             
                  if forked
         
     | 
| 
       168 
     | 
    
         
            -
                    # Call db. 
     | 
| 
      
 168 
     | 
    
         
            +
                    # Call db.connect to reconnect here
         
     | 
| 
       169 
169 
     | 
    
         
             
                  end
         
     | 
| 
       170 
170 
     | 
    
         
             
                end
         
     | 
| 
       171 
171 
     | 
    
         
             
              end
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -98,6 +98,11 @@ namespace :test do 
     | 
|
| 
       98 
98 
     | 
    
         
             
                t.verbose    = true
         
     | 
| 
       99 
99 
     | 
    
         
             
              end
         
     | 
| 
       100 
100 
     | 
    
         | 
| 
      
 101 
     | 
    
         
            +
              Rake::TestTask.new(:replica_set_ack) do |t|
         
     | 
| 
      
 102 
     | 
    
         
            +
                t.test_files = FileList['test/replica_sets/replication_ack_test.rb']
         
     | 
| 
      
 103 
     | 
    
         
            +
                t.verbose    = true
         
     | 
| 
      
 104 
     | 
    
         
            +
              end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
       101 
106 
     | 
    
         
             
              Rake::TestTask.new(:auto_reconnect) do |t|
         
     | 
| 
       102 
107 
     | 
    
         
             
                t.test_files = FileList['test/auxillary/autoreconnect_test.rb']
         
     | 
| 
       103 
108 
     | 
    
         
             
                t.verbose    = true
         
     | 
    
        data/lib/mongo.rb
    CHANGED
    
    
    
        data/lib/mongo/collection.rb
    CHANGED
    
    | 
         @@ -260,7 +260,7 @@ module Mongo 
     | 
|
| 
       260 
260 
     | 
    
         
             
                #   run the operation in safe mode, which run a getlasterror command on the
         
     | 
| 
       261 
261 
     | 
    
         
             
                #   database to report any assertion. In addition, a hash can be provided to
         
     | 
| 
       262 
262 
     | 
    
         
             
                #   run an fsync and/or wait for replication of the remove (>= 1.5.1). See the options
         
     | 
| 
       263 
     | 
    
         
            -
                #   for DB# 
     | 
| 
      
 263 
     | 
    
         
            +
                #   for DB#get_last_error.
         
     | 
| 
       264 
264 
     | 
    
         
             
                #
         
     | 
| 
       265 
265 
     | 
    
         
             
                # @example remove all documents from the 'users' collection:
         
     | 
| 
       266 
266 
     | 
    
         
             
                #   users.remove
         
     | 
    
        data/lib/mongo/connection.rb
    CHANGED
    
    | 
         @@ -119,7 +119,7 @@ module Mongo 
     | 
|
| 
       119 
119 
     | 
    
         
             
                  @logger   = options[:logger] || nil
         
     | 
| 
       120 
120 
     | 
    
         
             
                  @options  = options
         
     | 
| 
       121 
121 
     | 
    
         | 
| 
       122 
     | 
    
         
            -
                  should_connect = options 
     | 
| 
      
 122 
     | 
    
         
            +
                  should_connect = options.fetch(:connect, true)
         
     | 
| 
       123 
123 
     | 
    
         
             
                  connect if should_connect
         
     | 
| 
       124 
124 
     | 
    
         
             
                end
         
     | 
| 
       125 
125 
     | 
    
         | 
| 
         @@ -376,7 +376,7 @@ module Mongo 
     | 
|
| 
       376 
376 
     | 
    
         
             
                # @param [BSON::ByteBuffer] message a message to send to the database.
         
     | 
| 
       377 
377 
     | 
    
         
             
                # @param [String] log_message text version of +message+ for logging.
         
     | 
| 
       378 
378 
     | 
    
         
             
                #
         
     | 
| 
       379 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 379 
     | 
    
         
            +
                # @return [Integer] number of bytes sent
         
     | 
| 
       380 
380 
     | 
    
         
             
                def send_message(operation, message, log_message=nil)
         
     | 
| 
       381 
381 
     | 
    
         
             
                  @logger.debug("  MONGODB #{log_message || message}") if @logger
         
     | 
| 
       382 
382 
     | 
    
         
             
                  begin
         
     | 
| 
         @@ -398,7 +398,7 @@ module Mongo 
     | 
|
| 
       398 
398 
     | 
    
         
             
                # @param [Hash] last_error_params parameters to be sent to getLastError. See DB#error for
         
     | 
| 
       399 
399 
     | 
    
         
             
                #   available options.
         
     | 
| 
       400 
400 
     | 
    
         
             
                #
         
     | 
| 
       401 
     | 
    
         
            -
                # @see DB# 
     | 
| 
      
 401 
     | 
    
         
            +
                # @see DB#get_last_error for valid last error params.
         
     | 
| 
       402 
402 
     | 
    
         
             
                #
         
     | 
| 
       403 
403 
     | 
    
         
             
                # @return [Array]
         
     | 
| 
       404 
404 
     | 
    
         
             
                #   An array whose indexes include [0] documents returned, [1] number of document received,
         
     | 
| 
         @@ -812,12 +812,17 @@ module Mongo 
     | 
|
| 
       812 
812 
     | 
    
         | 
| 
       813 
813 
     | 
    
         
             
                # Low-level method for sending a message on a socket.
         
     | 
| 
       814 
814 
     | 
    
         
             
                # Requires a packed message and an available socket,
         
     | 
| 
      
 815 
     | 
    
         
            +
                #
         
     | 
| 
      
 816 
     | 
    
         
            +
                # @return [Integer] number of bytes sent
         
     | 
| 
       815 
817 
     | 
    
         
             
                def send_message_on_socket(packed_message, socket)
         
     | 
| 
       816 
818 
     | 
    
         
             
                  begin
         
     | 
| 
      
 819 
     | 
    
         
            +
                  total_bytes_sent = 0
         
     | 
| 
       817 
820 
     | 
    
         
             
                  while packed_message.size > 0
         
     | 
| 
       818 
821 
     | 
    
         
             
                    byte_sent = socket.send(packed_message, 0)
         
     | 
| 
      
 822 
     | 
    
         
            +
                    total_bytes_sent += byte_sent
         
     | 
| 
       819 
823 
     | 
    
         
             
                    packed_message.slice!(0, byte_sent)
         
     | 
| 
       820 
824 
     | 
    
         
             
                  end
         
     | 
| 
      
 825 
     | 
    
         
            +
                  total_bytes_sent
         
     | 
| 
       821 
826 
     | 
    
         
             
                  rescue => ex
         
     | 
| 
       822 
827 
     | 
    
         
             
                    close
         
     | 
| 
       823 
828 
     | 
    
         
             
                    raise ConnectionFailure, "Operation failed with the following exception: #{ex}"
         
     | 
    
        data/lib/mongo/db.rb
    CHANGED
    
    | 
         @@ -122,7 +122,7 @@ module Mongo 
     | 
|
| 
       122 
122 
     | 
    
         
             
                    }
         
     | 
| 
       123 
123 
     | 
    
         
             
                  )
         
     | 
| 
       124 
124 
     | 
    
         
             
                end
         
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
       126 
126 
     | 
    
         
             
                # Removes stored Javascript function from the database.  Returns
         
     | 
| 
       127 
127 
     | 
    
         
             
                # false if the function does not exist
         
     | 
| 
       128 
128 
     | 
    
         
             
                #
         
     | 
| 
         @@ -136,7 +136,7 @@ module Mongo 
     | 
|
| 
       136 
136 
     | 
    
         
             
                    return false
         
     | 
| 
       137 
137 
     | 
    
         
             
                  end
         
     | 
| 
       138 
138 
     | 
    
         
             
                end
         
     | 
| 
       139 
     | 
    
         
            -
             
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
       140 
140 
     | 
    
         
             
                # Adds a user to this database for use with authentication. If the user already
         
     | 
| 
       141 
141 
     | 
    
         
             
                # exists in the system, the password will be updated.
         
     | 
| 
       142 
142 
     | 
    
         
             
                #
         
     | 
| 
         @@ -276,6 +276,8 @@ module Mongo 
     | 
|
| 
       276 
276 
     | 
    
         
             
                  ok?(command(:drop => name))
         
     | 
| 
       277 
277 
     | 
    
         
             
                end
         
     | 
| 
       278 
278 
     | 
    
         | 
| 
      
 279 
     | 
    
         
            +
                # @deprecated
         
     | 
| 
      
 280 
     | 
    
         
            +
                #
         
     | 
| 
       279 
281 
     | 
    
         
             
                # Get the error message from the most recently executed database
         
     | 
| 
       280 
282 
     | 
    
         
             
                # operation for this connection.
         
     | 
| 
       281 
283 
     | 
    
         
             
                #
         
     | 
| 
         @@ -286,19 +288,36 @@ module Mongo 
     | 
|
| 
       286 
288 
     | 
    
         
             
                # @return [String, Nil] either the text describing an error or nil if no
         
     | 
| 
       287 
289 
     | 
    
         
             
                #   error has occurred.
         
     | 
| 
       288 
290 
     | 
    
         
             
                def error(opts={})
         
     | 
| 
      
 291 
     | 
    
         
            +
                  warn "DB#error is deprecated. Please use DB#get_last_error instead"
         
     | 
| 
       289 
292 
     | 
    
         
             
                  opts.assert_valid_keys(:w, :wtimeout, :fsync)
         
     | 
| 
      
 293 
     | 
    
         
            +
                  get_last_error(opts)['err']
         
     | 
| 
      
 294 
     | 
    
         
            +
                end
         
     | 
| 
      
 295 
     | 
    
         
            +
             
     | 
| 
      
 296 
     | 
    
         
            +
                # Run the getlasterror command with the specified replication options.
         
     | 
| 
      
 297 
     | 
    
         
            +
                #
         
     | 
| 
      
 298 
     | 
    
         
            +
                # @option opts [Boolean] :fsync (false)
         
     | 
| 
      
 299 
     | 
    
         
            +
                # @option opts [Integer] :w (nil)
         
     | 
| 
      
 300 
     | 
    
         
            +
                # @option opts [Integer] :wtimeout (nil)
         
     | 
| 
      
 301 
     | 
    
         
            +
                #
         
     | 
| 
      
 302 
     | 
    
         
            +
                # @return [Hash] the entire response to getlasterror.
         
     | 
| 
      
 303 
     | 
    
         
            +
                #
         
     | 
| 
      
 304 
     | 
    
         
            +
                # @raise [MongoDBError] if the operation fails.
         
     | 
| 
      
 305 
     | 
    
         
            +
                def get_last_error(opts={})
         
     | 
| 
       290 
306 
     | 
    
         
             
                  cmd = BSON::OrderedHash.new
         
     | 
| 
       291 
307 
     | 
    
         
             
                  cmd[:getlasterror] = 1
         
     | 
| 
       292 
     | 
    
         
            -
                  cmd.merge!(opts) 
     | 
| 
      
 308 
     | 
    
         
            +
                  cmd.merge!(opts)
         
     | 
| 
       293 
309 
     | 
    
         
             
                  doc = command(cmd, :check_response => false)
         
     | 
| 
       294 
310 
     | 
    
         
             
                  raise MongoDBError, "error retrieving last error: #{doc.inspect}" unless ok?(doc)
         
     | 
| 
       295 
     | 
    
         
            -
                  doc 
     | 
| 
      
 311 
     | 
    
         
            +
                  doc
         
     | 
| 
       296 
312 
     | 
    
         
             
                end
         
     | 
| 
       297 
313 
     | 
    
         | 
| 
      
 314 
     | 
    
         
            +
                # @deprecated
         
     | 
| 
      
 315 
     | 
    
         
            +
                #
         
     | 
| 
       298 
316 
     | 
    
         
             
                # Get status information from the last operation on this connection.
         
     | 
| 
       299 
317 
     | 
    
         
             
                #
         
     | 
| 
       300 
318 
     | 
    
         
             
                # @return [Hash] a hash representing the status of the last db op.
         
     | 
| 
       301 
319 
     | 
    
         
             
                def last_status
         
     | 
| 
      
 320 
     | 
    
         
            +
                  warn "DB#last_status is deprecated. Please use the equivalent DB#get_last_error instead"
         
     | 
| 
       302 
321 
     | 
    
         
             
                  command(:getlasterror => 1)
         
     | 
| 
       303 
322 
     | 
    
         
             
                end
         
     | 
| 
       304 
323 
     | 
    
         | 
| 
         @@ -307,7 +326,7 @@ module Mongo 
     | 
|
| 
       307 
326 
     | 
    
         
             
                #
         
     | 
| 
       308 
327 
     | 
    
         
             
                # @return [Boolean]
         
     | 
| 
       309 
328 
     | 
    
         
             
                def error?
         
     | 
| 
       310 
     | 
    
         
            -
                   
     | 
| 
      
 329 
     | 
    
         
            +
                  get_last_error['err'] != nil
         
     | 
| 
       311 
330 
     | 
    
         
             
                end
         
     | 
| 
       312 
331 
     | 
    
         | 
| 
       313 
332 
     | 
    
         
             
                # Get the most recent error to have occured on this database.
         
     | 
| 
         @@ -360,10 +379,9 @@ module Mongo 
     | 
|
| 
       360 
379 
     | 
    
         | 
| 
       361 
380 
     | 
    
         
             
                  oh = BSON::OrderedHash.new
         
     | 
| 
       362 
381 
     | 
    
         
             
                  oh[:$eval] = code
         
     | 
| 
       363 
     | 
    
         
            -
                  oh[:args] 
     | 
| 
      
 382 
     | 
    
         
            +
                  oh[:args]  = args
         
     | 
| 
       364 
383 
     | 
    
         
             
                  doc = command(oh)
         
     | 
| 
       365 
     | 
    
         
            -
                   
     | 
| 
       366 
     | 
    
         
            -
                  raise OperationFailure, "eval failed: #{doc['errmsg']}"
         
     | 
| 
      
 384 
     | 
    
         
            +
                  doc['retval']
         
     | 
| 
       367 
385 
     | 
    
         
             
                end
         
     | 
| 
       368 
386 
     | 
    
         | 
| 
       369 
387 
     | 
    
         
             
                # Rename a collection.
         
     | 
| 
         @@ -372,13 +390,13 @@ module Mongo 
     | 
|
| 
       372 
390 
     | 
    
         
             
                # @param [String] to new collection name.
         
     | 
| 
       373 
391 
     | 
    
         
             
                #
         
     | 
| 
       374 
392 
     | 
    
         
             
                # @return [True] returns +true+ on success.
         
     | 
| 
       375 
     | 
    
         
            -
                # 
     | 
| 
      
 393 
     | 
    
         
            +
                #
         
     | 
| 
       376 
394 
     | 
    
         
             
                # @raise MongoDBError if there's an error renaming the collection.
         
     | 
| 
       377 
395 
     | 
    
         
             
                def rename_collection(from, to)
         
     | 
| 
       378 
396 
     | 
    
         
             
                  oh = BSON::OrderedHash.new
         
     | 
| 
       379 
397 
     | 
    
         
             
                  oh[:renameCollection] = "#{@name}.#{from}"
         
     | 
| 
       380 
398 
     | 
    
         
             
                  oh[:to] = "#{@name}.#{to}"
         
     | 
| 
       381 
     | 
    
         
            -
                  doc = DB.new('admin', @connection).command(oh)
         
     | 
| 
      
 399 
     | 
    
         
            +
                  doc = DB.new('admin', @connection).command(oh, :check_response => false)
         
     | 
| 
       382 
400 
     | 
    
         
             
                  ok?(doc) || raise(MongoDBError, "Error renaming collection: #{doc.inspect}")
         
     | 
| 
       383 
401 
     | 
    
         
             
                end
         
     | 
| 
       384 
402 
     | 
    
         | 
| 
         @@ -415,7 +433,6 @@ module Mongo 
     | 
|
| 
       415 
433 
     | 
    
         
             
                  info
         
     | 
| 
       416 
434 
     | 
    
         
             
                end
         
     | 
| 
       417 
435 
     | 
    
         | 
| 
       418 
     | 
    
         
            -
             
     | 
| 
       419 
436 
     | 
    
         
             
                # Return stats on this database. Uses MongoDB's dbstats command.
         
     | 
| 
       420 
437 
     | 
    
         
             
                #
         
     | 
| 
       421 
438 
     | 
    
         
             
                # @return [Hash]
         
     | 
| 
         @@ -445,9 +462,6 @@ module Mongo 
     | 
|
| 
       445 
462 
     | 
    
         
             
                # key, specifying the command to be performed. In Ruby 1.9, OrderedHash isn't necessary since
         
     | 
| 
       446 
463 
     | 
    
         
             
                # hashes are ordered by default.
         
     | 
| 
       447 
464 
     | 
    
         
             
                #
         
     | 
| 
       448 
     | 
    
         
            -
                # @param [Boolean] admin If +true+, the command will be executed on the admin
         
     | 
| 
       449 
     | 
    
         
            -
                # collection. DEPRECATED.
         
     | 
| 
       450 
     | 
    
         
            -
                #
         
     | 
| 
       451 
465 
     | 
    
         
             
                # @option opts [Boolean] :check_response (true) If +true+, raises an exception if the
         
     | 
| 
       452 
466 
     | 
    
         
             
                # command fails.
         
     | 
| 
       453 
467 
     | 
    
         
             
                # @option opts [Socket] :sock a socket to use for sending the command. This is mainly for internal use.
         
     | 
| 
         @@ -455,8 +469,8 @@ module Mongo 
     | 
|
| 
       455 
469 
     | 
    
         
             
                # @return [Hash]
         
     | 
| 
       456 
470 
     | 
    
         
             
                #
         
     | 
| 
       457 
471 
     | 
    
         
             
                # @core commands command_instance-method
         
     | 
| 
       458 
     | 
    
         
            -
                def command(selector, opts={} 
     | 
| 
       459 
     | 
    
         
            -
                  check_response = opts 
     | 
| 
      
 472 
     | 
    
         
            +
                def command(selector, opts={})
         
     | 
| 
      
 473 
     | 
    
         
            +
                  check_response = opts.fetch(:check_response, true)
         
     | 
| 
       460 
474 
     | 
    
         
             
                  sock           = opts[:sock]
         
     | 
| 
       461 
475 
     | 
    
         
             
                  raise MongoArgumentError, "command must be given a selector" unless selector.is_a?(Hash) && !selector.empty?
         
     | 
| 
       462 
476 
     | 
    
         
             
                  if selector.keys.length > 1 && RUBY_VERSION < '1.9' && selector.class != BSON::OrderedHash
         
     | 
| 
         @@ -511,7 +525,7 @@ module Mongo 
     | 
|
| 
       511 
525 
     | 
    
         
             
                def profiling_level
         
     | 
| 
       512 
526 
     | 
    
         
             
                  oh = BSON::OrderedHash.new
         
     | 
| 
       513 
527 
     | 
    
         
             
                  oh[:profile] = -1
         
     | 
| 
       514 
     | 
    
         
            -
                  doc = command(oh)
         
     | 
| 
      
 528 
     | 
    
         
            +
                  doc = command(oh, :check_response => false)
         
     | 
| 
       515 
529 
     | 
    
         
             
                  raise "Error with profile command: #{doc.inspect}" unless ok?(doc) && doc['was'].kind_of?(Numeric)
         
     | 
| 
       516 
530 
     | 
    
         
             
                  case doc['was'].to_i
         
     | 
| 
       517 
531 
     | 
    
         
             
                  when 0
         
     | 
| 
         @@ -541,7 +555,7 @@ module Mongo 
     | 
|
| 
       541 
555 
     | 
    
         
             
                                 else
         
     | 
| 
       542 
556 
     | 
    
         
             
                                   raise "Error: illegal profiling level value #{level}"
         
     | 
| 
       543 
557 
     | 
    
         
             
                                 end
         
     | 
| 
       544 
     | 
    
         
            -
                  doc = command(oh)
         
     | 
| 
      
 558 
     | 
    
         
            +
                  doc = command(oh, :check_response => false)
         
     | 
| 
       545 
559 
     | 
    
         
             
                  ok?(doc) || raise(MongoDBError, "Error with profile command: #{doc.inspect}")
         
     | 
| 
       546 
560 
     | 
    
         
             
                end
         
     | 
| 
       547 
561 
     | 
    
         | 
| 
         @@ -561,7 +575,7 @@ module Mongo 
     | 
|
| 
       561 
575 
     | 
    
         
             
                # @raise [MongoDBError] if the command fails or there's a problem with the validation
         
     | 
| 
       562 
576 
     | 
    
         
             
                #   data, or if the collection is invalid.
         
     | 
| 
       563 
577 
     | 
    
         
             
                def validate_collection(name)
         
     | 
| 
       564 
     | 
    
         
            -
                  doc = command(:validate => name)
         
     | 
| 
      
 578 
     | 
    
         
            +
                  doc = command({:validate => name}, :check_response => false)
         
     | 
| 
       565 
579 
     | 
    
         
             
                  raise MongoDBError, "Error with validate command: #{doc.inspect}" unless ok?(doc)
         
     | 
| 
       566 
580 
     | 
    
         
             
                  result = doc['result']
         
     | 
| 
       567 
581 
     | 
    
         
             
                  raise MongoDBError, "Error with validation data: #{doc.inspect}" unless result.kind_of?(String)
         
     | 
    
        data/mongo.gemspec
    CHANGED
    
    
| 
         @@ -8,22 +8,22 @@ class SlaveConnectionTest < Test::Unit::TestCase 
     | 
|
| 
       8 
8 
     | 
    
         
             
                @@host = ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost'
         
     | 
| 
       9 
9 
     | 
    
         
             
                @@port = ENV['MONGO_RUBY_DRIVER_PORT'] || Connection::DEFAULT_PORT
         
     | 
| 
       10 
10 
     | 
    
         
             
                conn = Connection.new(@@host, @@port, :slave_ok => true)
         
     | 
| 
       11 
     | 
    
         
            -
                 
     | 
| 
       12 
     | 
    
         
            -
                 
     | 
| 
      
 11 
     | 
    
         
            +
                response = conn['admin'].command(:ismaster => 1)
         
     | 
| 
      
 12 
     | 
    
         
            +
                Mongo::Support.ok?(response) && response['ismaster'] != 1
         
     | 
| 
       13 
13 
     | 
    
         
             
              end
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
              if self.connect_to_slave
         
     | 
| 
       16 
16 
     | 
    
         
             
                puts "Connected to slave; running slave tests."
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
                def test_connect_to_slave
         
     | 
| 
       19 
     | 
    
         
            -
                  assert_raise Mongo:: 
     | 
| 
      
 19 
     | 
    
         
            +
                  assert_raise Mongo::ConnectionFailure do
         
     | 
| 
       20 
20 
     | 
    
         
             
                    @db = Connection.new(@@host, @@port, :slave_ok => false).db('ruby-mongo-demo')
         
     | 
| 
       21 
21 
     | 
    
         
             
                  end
         
     | 
| 
       22 
22 
     | 
    
         
             
                end
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                def test_slave_ok_sent_to_queries
         
     | 
| 
       25 
     | 
    
         
            -
                  @ 
     | 
| 
       26 
     | 
    
         
            -
                  assert_equal true, @ 
     | 
| 
      
 25 
     | 
    
         
            +
                  @con = Connection.new(@@host, @@port, :slave_ok => true)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  assert_equal true, @con.slave_ok?
         
     | 
| 
       27 
27 
     | 
    
         
             
                end
         
     | 
| 
       28 
28 
     | 
    
         
             
              else
         
     | 
| 
       29 
29 
     | 
    
         
             
                puts "Not connected to slave; skipping slave connection tests."
         
     | 
    
        data/test/collection_test.rb
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'test/test_helper'
         
     | 
| 
      
 1 
     | 
    
         
            +
            require './test/test_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            class TestCollection < Test::Unit::TestCase
         
     | 
| 
       4 
4 
     | 
    
         
             
              @@connection ||= Connection.new(ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost', ENV['MONGO_RUBY_DRIVER_PORT'] || Connection::DEFAULT_PORT)
         
     | 
| 
         @@ -139,24 +139,6 @@ class TestCollection < Test::Unit::TestCase 
     | 
|
| 
       139 
139 
     | 
    
         
             
                    @@test.remove({:foo => 2}, :safe => {:w => 2, :wtime => 1, :fsync => true})
         
     | 
| 
       140 
140 
     | 
    
         
             
                  end
         
     | 
| 
       141 
141 
     | 
    
         
             
                end
         
     | 
| 
       142 
     | 
    
         
            -
             
     | 
| 
       143 
     | 
    
         
            -
                def test_safe_mode_with_w_failure
         
     | 
| 
       144 
     | 
    
         
            -
                  assert_raise_error OperationFailure, "timed out waiting for slaves" do
         
     | 
| 
       145 
     | 
    
         
            -
                    @@test.insert({:foo => 1}, :safe => {:w => 2, :wtimeout => 1, :fsync => true})
         
     | 
| 
       146 
     | 
    
         
            -
                  end
         
     | 
| 
       147 
     | 
    
         
            -
                  assert_raise_error OperationFailure, "timed out waiting for slaves" do
         
     | 
| 
       148 
     | 
    
         
            -
                    @@test.update({:foo => 1}, {:foo => 2}, :safe => {:w => 2, :wtimeout => 1, :fsync => true})
         
     | 
| 
       149 
     | 
    
         
            -
                  end
         
     | 
| 
       150 
     | 
    
         
            -
                  assert_raise_error OperationFailure, "timed out waiting for slaves" do
         
     | 
| 
       151 
     | 
    
         
            -
                    @@test.remove({:foo => 2}, :safe => {:w => 2, :wtimeout => 1, :fsync => true})
         
     | 
| 
       152 
     | 
    
         
            -
                  end
         
     | 
| 
       153 
     | 
    
         
            -
                end
         
     | 
| 
       154 
     | 
    
         
            -
             
     | 
| 
       155 
     | 
    
         
            -
                def test_safe_mode_with_write_and_fsync
         
     | 
| 
       156 
     | 
    
         
            -
                  assert @@test.insert({:foo => 1}, :safe => {:w => 1, :wtimeout => 1, :fsync => true})
         
     | 
| 
       157 
     | 
    
         
            -
                  assert @@test.update({:foo => 1}, {:foo => 2}, :safe => {:w => 1, :wtimeout => 1, :fsync => true})
         
     | 
| 
       158 
     | 
    
         
            -
                  assert @@test.remove({:foo => 2}, :safe => {:w => 1, :wtimeout => 1, :fsync => true})
         
     | 
| 
       159 
     | 
    
         
            -
                end
         
     | 
| 
       160 
142 
     | 
    
         
             
              end
         
     | 
| 
       161 
143 
     | 
    
         | 
| 
       162 
144 
     | 
    
         
             
              def test_update
         
     | 
| 
         @@ -259,6 +241,11 @@ class TestCollection < Test::Unit::TestCase 
     | 
|
| 
       259 
241 
     | 
    
         
             
                @test.drop
         
     | 
| 
       260 
242 
     | 
    
         
             
              end
         
     | 
| 
       261 
243 
     | 
    
         | 
| 
      
 244 
     | 
    
         
            +
              def test_remove_return_value
         
     | 
| 
      
 245 
     | 
    
         
            +
                assert_equal 50, @@test.remove({})
         
     | 
| 
      
 246 
     | 
    
         
            +
                assert_equal 57, @@test.remove({"x" => 1})
         
     | 
| 
      
 247 
     | 
    
         
            +
              end
         
     | 
| 
      
 248 
     | 
    
         
            +
             
     | 
| 
       262 
249 
     | 
    
         
             
              def test_count
         
     | 
| 
       263 
250 
     | 
    
         
             
                @@test.drop
         
     | 
| 
       264 
251 
     | 
    
         | 
    
        data/test/connection_test.rb
    CHANGED
    
    
    
        data/test/cursor_test.rb
    CHANGED
    
    | 
         @@ -399,18 +399,18 @@ class CursorTest < Test::Unit::TestCase 
     | 
|
| 
       399 
399 
     | 
    
         | 
| 
       400 
400 
     | 
    
         
             
              def test_cursor_invalid
         
     | 
| 
       401 
401 
     | 
    
         
             
                @@coll.remove
         
     | 
| 
       402 
     | 
    
         
            -
                 
     | 
| 
      
 402 
     | 
    
         
            +
                10000.times do |n|
         
     | 
| 
       403 
403 
     | 
    
         
             
                  @@coll.insert({:a => n})
         
     | 
| 
       404 
404 
     | 
    
         
             
                end
         
     | 
| 
       405 
405 
     | 
    
         | 
| 
       406 
406 
     | 
    
         
             
                cursor = @@coll.find({})
         
     | 
| 
       407 
     | 
    
         
            -
                cursor.next_document
         
     | 
| 
       408 
     | 
    
         
            -
                cursor.close
         
     | 
| 
       409 
407 
     | 
    
         | 
| 
       410 
     | 
    
         
            -
                assert_raise_error 
     | 
| 
       411 
     | 
    
         
            -
                   
     | 
| 
      
 408 
     | 
    
         
            +
                assert_raise_error Mongo::OperationFailure, "CURSOR_NOT_FOUND" do
         
     | 
| 
      
 409 
     | 
    
         
            +
                  9999.times do
         
     | 
| 
       412 
410 
     | 
    
         
             
                    cursor.next_document
         
     | 
| 
      
 411 
     | 
    
         
            +
                    cursor.instance_variable_set(:@cursor_id, 1234567890)
         
     | 
| 
       413 
412 
     | 
    
         
             
                  end
         
     | 
| 
       414 
413 
     | 
    
         
             
                end
         
     | 
| 
       415 
414 
     | 
    
         
             
              end
         
     | 
| 
      
 415 
     | 
    
         
            +
             
     | 
| 
       416 
416 
     | 
    
         
             
            end
         
     | 
    
        data/test/db_api_test.rb
    CHANGED
    
    
    
        data/test/db_test.rb
    CHANGED
    
    | 
         @@ -1,3 +1,4 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            $:.unshift '.'
         
     | 
| 
       1 
2 
     | 
    
         
             
            require 'test/test_helper'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'digest/md5'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'stringio'
         
     | 
| 
         @@ -163,52 +164,34 @@ class DBTest < Test::Unit::TestCase 
     | 
|
| 
       163 
164 
     | 
    
         | 
| 
       164 
165 
     | 
    
         
             
              def test_error
         
     | 
| 
       165 
166 
     | 
    
         
             
                @@db.reset_error_history
         
     | 
| 
       166 
     | 
    
         
            -
                assert_nil @@db. 
     | 
| 
      
 167 
     | 
    
         
            +
                assert_nil @@db.get_last_error['err']
         
     | 
| 
       167 
168 
     | 
    
         
             
                assert !@@db.error?
         
     | 
| 
       168 
169 
     | 
    
         
             
                assert_nil @@db.previous_error
         
     | 
| 
       169 
170 
     | 
    
         | 
| 
       170 
171 
     | 
    
         
             
                @@db.command({:forceerror => 1}, :check_response => false)
         
     | 
| 
       171 
172 
     | 
    
         
             
                assert @@db.error?
         
     | 
| 
       172 
     | 
    
         
            -
                assert_not_nil @@db. 
     | 
| 
      
 173 
     | 
    
         
            +
                assert_not_nil @@db.get_last_error['err']
         
     | 
| 
       173 
174 
     | 
    
         
             
                assert_not_nil @@db.previous_error
         
     | 
| 
       174 
175 
     | 
    
         | 
| 
       175 
176 
     | 
    
         
             
                @@db.command({:forceerror => 1}, :check_response => false)
         
     | 
| 
       176 
177 
     | 
    
         
             
                assert @@db.error?
         
     | 
| 
       177 
     | 
    
         
            -
                assert @@db. 
     | 
| 
      
 178 
     | 
    
         
            +
                assert @@db.get_last_error['err']
         
     | 
| 
       178 
179 
     | 
    
         
             
                prev_error = @@db.previous_error
         
     | 
| 
       179 
180 
     | 
    
         
             
                assert_equal 1, prev_error['nPrev']
         
     | 
| 
       180 
     | 
    
         
            -
                assert_equal prev_error["err"], @@db. 
     | 
| 
      
 181 
     | 
    
         
            +
                assert_equal prev_error["err"], @@db.get_last_error['err']
         
     | 
| 
       181 
182 
     | 
    
         | 
| 
       182 
183 
     | 
    
         
             
                @@db.collection('test').find_one
         
     | 
| 
       183 
     | 
    
         
            -
                assert_nil @@db. 
     | 
| 
      
 184 
     | 
    
         
            +
                assert_nil @@db.get_last_error['err']
         
     | 
| 
       184 
185 
     | 
    
         
             
                assert !@@db.error?
         
     | 
| 
       185 
186 
     | 
    
         
             
                assert @@db.previous_error
         
     | 
| 
       186 
187 
     | 
    
         
             
                assert_equal 2, @@db.previous_error['nPrev']
         
     | 
| 
       187 
188 
     | 
    
         | 
| 
       188 
189 
     | 
    
         
             
                @@db.reset_error_history
         
     | 
| 
       189 
     | 
    
         
            -
                assert_nil @@db. 
     | 
| 
      
 190 
     | 
    
         
            +
                assert_nil @@db.get_last_error['err']
         
     | 
| 
       190 
191 
     | 
    
         
             
                assert !@@db.error?
         
     | 
| 
       191 
192 
     | 
    
         
             
                assert_nil @@db.previous_error
         
     | 
| 
       192 
193 
     | 
    
         
             
              end
         
     | 
| 
       193 
194 
     | 
    
         | 
| 
       194 
     | 
    
         
            -
              if @@version >= "1.5.1"
         
     | 
| 
       195 
     | 
    
         
            -
                def test_failing_error_params
         
     | 
| 
       196 
     | 
    
         
            -
                  assert_raise_error Mongo::MongoDBError, "timed out waiting for slaves" do
         
     | 
| 
       197 
     | 
    
         
            -
                    @@db.error(:w => 2, :wtimeout => 10, :fsync => true)
         
     | 
| 
       198 
     | 
    
         
            -
                  end
         
     | 
| 
       199 
     | 
    
         
            -
                end
         
     | 
| 
       200 
     | 
    
         
            -
             
     | 
| 
       201 
     | 
    
         
            -
                def test_passing_error_params
         
     | 
| 
       202 
     | 
    
         
            -
                  assert_nil @@db.error(:w => 1, :wtimeout => 10, :fsync => true)
         
     | 
| 
       203 
     | 
    
         
            -
                end
         
     | 
| 
       204 
     | 
    
         
            -
             
     | 
| 
       205 
     | 
    
         
            -
                def test_invalid_error_params
         
     | 
| 
       206 
     | 
    
         
            -
                  assert_raise_error ArgumentError, "Unknown key(s): z" do
         
     | 
| 
       207 
     | 
    
         
            -
                    @@db.error(:z => 1, :wtimeout => 10, :fsync => true)
         
     | 
| 
       208 
     | 
    
         
            -
                  end
         
     | 
| 
       209 
     | 
    
         
            -
                end
         
     | 
| 
       210 
     | 
    
         
            -
              end
         
     | 
| 
       211 
     | 
    
         
            -
             
     | 
| 
       212 
195 
     | 
    
         
             
              def test_check_command_response
         
     | 
| 
       213 
196 
     | 
    
         
             
                command = {:forceerror => 1}
         
     | 
| 
       214 
197 
     | 
    
         
             
                assert_raise OperationFailure do 
         
     | 
| 
         @@ -256,6 +239,11 @@ class DBTest < Test::Unit::TestCase 
     | 
|
| 
       256 
239 
     | 
    
         
             
                end
         
     | 
| 
       257 
240 
     | 
    
         
             
              end
         
     | 
| 
       258 
241 
     | 
    
         | 
| 
      
 242 
     | 
    
         
            +
              def test_eval
         
     | 
| 
      
 243 
     | 
    
         
            +
                @@db.eval("db.system.save({_id:'hello', value: function() { print('hello'); } })")
         
     | 
| 
      
 244 
     | 
    
         
            +
                assert_equal 'hello', @@db['system'].find_one['_id']
         
     | 
| 
      
 245 
     | 
    
         
            +
              end
         
     | 
| 
      
 246 
     | 
    
         
            +
             
     | 
| 
       259 
247 
     | 
    
         
             
              if @@version >= "1.3.5"
         
     | 
| 
       260 
248 
     | 
    
         
             
                def test_db_stats
         
     | 
| 
       261 
249 
     | 
    
         
             
                  stats = @@db.stats
         
     | 
| 
         @@ -0,0 +1,71 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'mongo'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'test/unit'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'test/test_helper'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            # NOTE: This test expects a replica set of three nodes to be running on local host.
         
     | 
| 
      
 7 
     | 
    
         
            +
            class ReplicaSetAckTest < Test::Unit::TestCase
         
     | 
| 
      
 8 
     | 
    
         
            +
              include Mongo
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 11 
     | 
    
         
            +
                @conn = Mongo::Connection.multi([['localhost', 27017], ['localhost', 27018], ['localhost', 27019]])
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                master = [@conn.host, @conn.port]
         
     | 
| 
      
 14 
     | 
    
         
            +
                @slaves = @conn.nodes - master
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                @slave1 = Mongo::Connection.new(@slaves[0][0], @slaves[0][1], :slave_ok => true)
         
     | 
| 
      
 17 
     | 
    
         
            +
                @slave2 = Mongo::Connection.new(@slaves[1][0], @slaves[1][1], :slave_ok => true)
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                @db = @conn.db(MONGO_TEST_DB)
         
     | 
| 
      
 20 
     | 
    
         
            +
                @db.drop_collection("test-sets")
         
     | 
| 
      
 21 
     | 
    
         
            +
                @col = @db.collection("test-sets")
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              def test_safe_mode_with_w_failure
         
     | 
| 
      
 25 
     | 
    
         
            +
                assert_raise_error OperationFailure, "timed out waiting for slaves" do
         
     | 
| 
      
 26 
     | 
    
         
            +
                  @col.insert({:foo => 1}, :safe => {:w => 4, :wtimeout => 1, :fsync => true})
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
                assert_raise_error OperationFailure, "timed out waiting for slaves" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                  @col.update({:foo => 1}, {:foo => 2}, :safe => {:w => 4, :wtimeout => 1, :fsync => true})
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
                assert_raise_error OperationFailure, "timed out waiting for slaves" do
         
     | 
| 
      
 32 
     | 
    
         
            +
                  @col.remove({:foo => 2}, :safe => {:w => 4, :wtimeout => 1, :fsync => true})
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
              def test_safe_mode_replication_ack
         
     | 
| 
      
 37 
     | 
    
         
            +
                @col.insert({:baz => "bar"}, :safe => {:w => 3, :wtimeout => 1000})
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                assert @col.insert({:foo => "0" * 10000}, :safe => {:w => 3, :wtimeout => 1000})
         
     | 
| 
      
 40 
     | 
    
         
            +
                assert_equal 2, @slave1[MONGO_TEST_DB]["test-sets"].count
         
     | 
| 
      
 41 
     | 
    
         
            +
                assert_equal 2, @slave2[MONGO_TEST_DB]["test-sets"].count
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                assert @col.update({:baz => "bar"}, {:baz => "foo"}, :safe => {:w => 3, :wtimeout => 1000})
         
     | 
| 
      
 45 
     | 
    
         
            +
                assert @slave1[MONGO_TEST_DB]["test-sets"].find_one({:baz => "foo"})
         
     | 
| 
      
 46 
     | 
    
         
            +
                assert @slave2[MONGO_TEST_DB]["test-sets"].find_one({:baz => "foo"})
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                assert @col.remove({}, :safe => {:w => 3, :wtimeout => 1000})
         
     | 
| 
      
 49 
     | 
    
         
            +
                assert_equal 0, @slave1[MONGO_TEST_DB]["test-sets"].count
         
     | 
| 
      
 50 
     | 
    
         
            +
                assert_equal 0, @slave2[MONGO_TEST_DB]["test-sets"].count
         
     | 
| 
      
 51 
     | 
    
         
            +
              end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
              def test_last_error_responses
         
     | 
| 
      
 54 
     | 
    
         
            +
                20.times { @col.insert({:baz => "bar"}) }
         
     | 
| 
      
 55 
     | 
    
         
            +
                response = @db.get_last_error(:w => 3, :wtimeout => 10000)
         
     | 
| 
      
 56 
     | 
    
         
            +
                assert response['ok'] == 1
         
     | 
| 
      
 57 
     | 
    
         
            +
                assert response['lastOp']
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                @col.update({}, {:baz => "foo"}, :multi => true)
         
     | 
| 
      
 60 
     | 
    
         
            +
                response = @db.get_last_error(:w => 3, :wtimeout => 1000)
         
     | 
| 
      
 61 
     | 
    
         
            +
                assert response['ok'] == 1
         
     | 
| 
      
 62 
     | 
    
         
            +
                assert response['lastOp']
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                @col.remove({})
         
     | 
| 
      
 65 
     | 
    
         
            +
                response =  @db.get_last_error(:w => 3, :wtimeout => 1000)
         
     | 
| 
      
 66 
     | 
    
         
            +
                assert response['ok'] == 1
         
     | 
| 
      
 67 
     | 
    
         
            +
                assert response['n'] == 20
         
     | 
| 
      
 68 
     | 
    
         
            +
                assert response['lastOp']
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            end
         
     | 
    
        data/test/test_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,12 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: mongo
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash: 27
         
     | 
| 
       5 
4 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       6 
5 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
6 
     | 
    
         
             
              - 1
         
     | 
| 
       8 
7 
     | 
    
         
             
              - 0
         
     | 
| 
       9 
     | 
    
         
            -
              -  
     | 
| 
       10 
     | 
    
         
            -
              version: 1.0. 
     | 
| 
      
 8 
     | 
    
         
            +
              - 7
         
     | 
| 
      
 9 
     | 
    
         
            +
              version: 1.0.7
         
     | 
| 
       11 
10 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
11 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
12 
     | 
    
         
             
            - Jim Menard
         
     | 
| 
         @@ -17,18 +16,16 @@ autorequire: 
     | 
|
| 
       17 
16 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       18 
17 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       19 
18 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
            date: 2010- 
     | 
| 
      
 19 
     | 
    
         
            +
            date: 2010-08-05 00:00:00 -04:00
         
     | 
| 
       21 
20 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       22 
21 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       23 
22 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       24 
23 
     | 
    
         
             
              name: bson
         
     | 
| 
       25 
24 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       26 
25 
     | 
    
         
             
              requirement: &id001 !ruby/object:Gem::Requirement 
         
     | 
| 
       27 
     | 
    
         
            -
                none: false
         
     | 
| 
       28 
26 
     | 
    
         
             
                requirements: 
         
     | 
| 
       29 
27 
     | 
    
         
             
                - - ">="
         
     | 
| 
       30 
28 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       31 
     | 
    
         
            -
                    hash: 31
         
     | 
| 
       32 
29 
     | 
    
         
             
                    segments: 
         
     | 
| 
       33 
30 
     | 
    
         
             
                    - 1
         
     | 
| 
       34 
31 
     | 
    
         
             
                    - 0
         
     | 
| 
         @@ -76,38 +73,6 @@ files: 
     | 
|
| 
       76 
73 
     | 
    
         
             
            - examples/types.rb
         
     | 
| 
       77 
74 
     | 
    
         
             
            - bin/bson_benchmark.rb
         
     | 
| 
       78 
75 
     | 
    
         
             
            - bin/fail_if_no_c.rb
         
     | 
| 
       79 
     | 
    
         
            -
            - test/auxillary/1.4_features.rb
         
     | 
| 
       80 
     | 
    
         
            -
            - test/auxillary/authentication_test.rb
         
     | 
| 
       81 
     | 
    
         
            -
            - test/auxillary/autoreconnect_test.rb
         
     | 
| 
       82 
     | 
    
         
            -
            - test/collection_test.rb
         
     | 
| 
       83 
     | 
    
         
            -
            - test/connection_test.rb
         
     | 
| 
       84 
     | 
    
         
            -
            - test/conversions_test.rb
         
     | 
| 
       85 
     | 
    
         
            -
            - test/cursor_fail_test.rb
         
     | 
| 
       86 
     | 
    
         
            -
            - test/cursor_message_test.rb
         
     | 
| 
       87 
     | 
    
         
            -
            - test/cursor_test.rb
         
     | 
| 
       88 
     | 
    
         
            -
            - test/db_api_test.rb
         
     | 
| 
       89 
     | 
    
         
            -
            - test/db_connection_test.rb
         
     | 
| 
       90 
     | 
    
         
            -
            - test/db_test.rb
         
     | 
| 
       91 
     | 
    
         
            -
            - test/grid_file_system_test.rb
         
     | 
| 
       92 
     | 
    
         
            -
            - test/grid_io_test.rb
         
     | 
| 
       93 
     | 
    
         
            -
            - test/grid_test.rb
         
     | 
| 
       94 
     | 
    
         
            -
            - test/replica_pairs/count_test.rb
         
     | 
| 
       95 
     | 
    
         
            -
            - test/replica_pairs/insert_test.rb
         
     | 
| 
       96 
     | 
    
         
            -
            - test/replica_pairs/pooled_insert_test.rb
         
     | 
| 
       97 
     | 
    
         
            -
            - test/replica_pairs/query_test.rb
         
     | 
| 
       98 
     | 
    
         
            -
            - test/replica_sets/count_test.rb
         
     | 
| 
       99 
     | 
    
         
            -
            - test/replica_sets/insert_test.rb
         
     | 
| 
       100 
     | 
    
         
            -
            - test/replica_sets/pooled_insert_test.rb
         
     | 
| 
       101 
     | 
    
         
            -
            - test/replica_sets/query_test.rb
         
     | 
| 
       102 
     | 
    
         
            -
            - test/slave_connection_test.rb
         
     | 
| 
       103 
     | 
    
         
            -
            - test/support_test.rb
         
     | 
| 
       104 
     | 
    
         
            -
            - test/test_helper.rb
         
     | 
| 
       105 
     | 
    
         
            -
            - test/threading/test_threading_large_pool.rb
         
     | 
| 
       106 
     | 
    
         
            -
            - test/threading_test.rb
         
     | 
| 
       107 
     | 
    
         
            -
            - test/unit/collection_test.rb
         
     | 
| 
       108 
     | 
    
         
            -
            - test/unit/connection_test.rb
         
     | 
| 
       109 
     | 
    
         
            -
            - test/unit/cursor_test.rb
         
     | 
| 
       110 
     | 
    
         
            -
            - test/unit/db_test.rb
         
     | 
| 
       111 
76 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
       112 
77 
     | 
    
         
             
            homepage: http://www.mongodb.org
         
     | 
| 
       113 
78 
     | 
    
         
             
            licenses: []
         
     | 
| 
         @@ -120,27 +85,23 @@ rdoc_options: 
     | 
|
| 
       120 
85 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       121 
86 
     | 
    
         
             
            - lib
         
     | 
| 
       122 
87 
     | 
    
         
             
            required_ruby_version: !ruby/object:Gem::Requirement 
         
     | 
| 
       123 
     | 
    
         
            -
              none: false
         
     | 
| 
       124 
88 
     | 
    
         
             
              requirements: 
         
     | 
| 
       125 
89 
     | 
    
         
             
              - - ">="
         
     | 
| 
       126 
90 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
       127 
     | 
    
         
            -
                  hash: 3
         
     | 
| 
       128 
91 
     | 
    
         
             
                  segments: 
         
     | 
| 
       129 
92 
     | 
    
         
             
                  - 0
         
     | 
| 
       130 
93 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       131 
94 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
       132 
     | 
    
         
            -
              none: false
         
     | 
| 
       133 
95 
     | 
    
         
             
              requirements: 
         
     | 
| 
       134 
96 
     | 
    
         
             
              - - ">="
         
     | 
| 
       135 
97 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
       136 
     | 
    
         
            -
                  hash: 3
         
     | 
| 
       137 
98 
     | 
    
         
             
                  segments: 
         
     | 
| 
       138 
99 
     | 
    
         
             
                  - 0
         
     | 
| 
       139 
100 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       140 
101 
     | 
    
         
             
            requirements: []
         
     | 
| 
       141 
102 
     | 
    
         | 
| 
       142 
103 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       143 
     | 
    
         
            -
            rubygems_version: 1.3. 
     | 
| 
      
 104 
     | 
    
         
            +
            rubygems_version: 1.3.6
         
     | 
| 
       144 
105 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       145 
106 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       146 
107 
     | 
    
         
             
            summary: Ruby driver for the MongoDB
         
     | 
| 
         @@ -148,6 +109,7 @@ test_files: 
     | 
|
| 
       148 
109 
     | 
    
         
             
            - test/auxillary/1.4_features.rb
         
     | 
| 
       149 
110 
     | 
    
         
             
            - test/auxillary/authentication_test.rb
         
     | 
| 
       150 
111 
     | 
    
         
             
            - test/auxillary/autoreconnect_test.rb
         
     | 
| 
      
 112 
     | 
    
         
            +
            - test/auxillary/slave_connection_test.rb
         
     | 
| 
       151 
113 
     | 
    
         
             
            - test/collection_test.rb
         
     | 
| 
       152 
114 
     | 
    
         
             
            - test/connection_test.rb
         
     | 
| 
       153 
115 
     | 
    
         
             
            - test/conversions_test.rb
         
     | 
| 
         @@ -168,7 +130,7 @@ test_files: 
     | 
|
| 
       168 
130 
     | 
    
         
             
            - test/replica_sets/insert_test.rb
         
     | 
| 
       169 
131 
     | 
    
         
             
            - test/replica_sets/pooled_insert_test.rb
         
     | 
| 
       170 
132 
     | 
    
         
             
            - test/replica_sets/query_test.rb
         
     | 
| 
       171 
     | 
    
         
            -
            - test/ 
     | 
| 
      
 133 
     | 
    
         
            +
            - test/replica_sets/replication_ack_test.rb
         
     | 
| 
       172 
134 
     | 
    
         
             
            - test/support_test.rb
         
     | 
| 
       173 
135 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
| 
       174 
136 
     | 
    
         
             
            - test/threading/test_threading_large_pool.rb
         
     |