mongo 1.5.1 → 1.5.2

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.
@@ -84,7 +84,13 @@ module Mongo
84
84
  # matches with the name provided.
85
85
  def set_config
86
86
  begin
87
- @config = @connection['admin'].command({:ismaster => 1}, :socket => @socket)
87
+ if @connection.connect_timeout
88
+ Mongo::TimeoutHandler.timeout(@connection.connect_timeout, OperationTimeout) do
89
+ @config = @connection['admin'].command({:ismaster => 1}, :socket => @socket)
90
+ end
91
+ else
92
+ @config = @connection['admin'].command({:ismaster => 1}, :socket => @socket)
93
+ end
88
94
 
89
95
  if @config['msg'] && @logger
90
96
  @connection.log(:warn, "#{config['msg']}")
@@ -92,9 +98,10 @@ module Mongo
92
98
 
93
99
  check_set_membership(config)
94
100
  check_set_name(config)
95
- rescue ConnectionFailure, OperationFailure, SocketError, SystemCallError, IOError => ex
101
+ rescue ConnectionFailure, OperationFailure, OperationTimeout, SocketError, SystemCallError, IOError => ex
96
102
  @connection.log(:warn, "Attempted connection to node #{host_string} raised " +
97
103
  "#{ex.class}: #{ex.message}")
104
+ @socket.close unless @socket.closed?
98
105
  return nil
99
106
  end
100
107
 
@@ -236,12 +236,10 @@ module Mongo
236
236
  #
237
237
  # Note: this must be called from within a mutex.
238
238
  def prune
239
- surplus = @size - @sockets.size
240
- return if surplus <= 0
241
239
  idle_sockets = @sockets - @checked_out
242
- [surplus, idle_sockets.length].min.times do |n|
243
- idle_sockets[n].close
244
- @sockets.delete(idle_sockets[n])
240
+ idle_sockets.each do |socket|
241
+ socket.close unless socket.closed?
242
+ @sockets.delete(socket)
245
243
  end
246
244
  end
247
245
 
@@ -259,7 +257,9 @@ module Mongo
259
257
  end
260
258
 
261
259
  @connection_mutex.synchronize do
262
- #prune
260
+ if @sockets.size > @size * 1.5
261
+ prune
262
+ end
263
263
 
264
264
  socket = if @checked_out.size < @sockets.size
265
265
  checkout_existing_socket
@@ -1,15 +1,22 @@
1
1
  module Mongo
2
2
  class PoolManager
3
3
 
4
- attr_reader :connection, :seeds, :arbiters, :primary, :secondaries,
5
- :primary_pool, :read_pool, :secondary_pools, :hosts, :nodes, :max_bson_size,
4
+ attr_reader :connection, :arbiters, :primary, :secondaries, :primary_pool,
5
+ :read_pool, :secondary_pools, :hosts, :nodes, :max_bson_size,
6
6
  :tags_to_pools, :tag_map, :members
7
7
 
8
- def initialize(connection, seeds)
8
+ # Create a new set of connection pools.
9
+ #
10
+ # The pool manager will by default use the original seed list passed
11
+ # to the connection objects, accessible via connection.seeds. In addition,
12
+ # the user may pass an additional list of seeds nodes discovered in real
13
+ # time. The union of these lists will be used when attempting to connect,
14
+ # with the newly-discovered nodes being used first.
15
+ def initialize(connection, seeds=[])
9
16
  @connection = connection
17
+ @original_seeds = connection.seeds
10
18
  @seeds = seeds
11
19
  @previously_connected = false
12
- @refresh_required = false
13
20
  end
14
21
 
15
22
  def inspect
@@ -17,14 +24,12 @@ module Mongo
17
24
  end
18
25
 
19
26
  def connect
20
- if @previously_connected
21
- close
22
- end
27
+ close if @previously_connected
23
28
 
24
29
  initialize_data
25
30
  members = connect_to_members
26
31
  initialize_pools(members)
27
- update_seed_list(members)
32
+ cache_discovered_seeds(members)
28
33
  set_read_pool
29
34
  set_tag_mappings
30
35
 
@@ -35,7 +40,7 @@ module Mongo
35
40
  # We're healthy if all members are pingable and if the view
36
41
  # of the replica set returned by isMaster is equivalent
37
42
  # to our view. If any of these isn't the case,
38
- # set @refresh_require to true, and return.
43
+ # set @refresh_required to true, and return.
39
44
  def check_connection_health
40
45
  begin
41
46
  seed = get_valid_seed_node
@@ -101,6 +106,12 @@ module Mongo
101
106
  end
102
107
  end
103
108
 
109
+ # The set of nodes that this class has discovered and
110
+ # successfully connected to.
111
+ def seeds
112
+ @seeds || []
113
+ end
114
+
104
115
  private
105
116
 
106
117
  def validate_existing_member(member)
@@ -124,6 +135,7 @@ module Mongo
124
135
  end
125
136
 
126
137
  def initialize_data
138
+ @seeds = []
127
139
  @primary = nil
128
140
  @primary_pool = nil
129
141
  @read_pool = nil
@@ -134,6 +146,7 @@ module Mongo
134
146
  @members = Set.new
135
147
  @tags_to_pools = {}
136
148
  @tag_map = {}
149
+ @refresh_required = false
137
150
  end
138
151
 
139
152
  # Connect to each member of the replica set
@@ -255,7 +268,7 @@ module Mongo
255
268
  #
256
269
  # If we don't get a response, raise an exception.
257
270
  def get_valid_seed_node
258
- @seeds.each do |seed|
271
+ seed_list.each do |seed|
259
272
  node = Mongo::Node.new(self.connection, seed)
260
273
  if !node.connect
261
274
  next
@@ -267,10 +280,14 @@ module Mongo
267
280
  end
268
281
 
269
282
  raise ConnectionFailure, "Cannot connect to a replica set using seeds " +
270
- "#{@seeds.map {|s| "#{s[0]}:#{s[1]}" }.join(', ')}"
283
+ "#{seed_list.map {|s| "#{s[0]}:#{s[1]}" }.join(', ')}"
284
+ end
285
+
286
+ def seed_list
287
+ @seeds | @original_seeds
271
288
  end
272
289
 
273
- def update_seed_list(members)
290
+ def cache_discovered_seeds(members)
274
291
  @seeds = members.map { |n| n.host_port }
275
292
  end
276
293
 
@@ -1,3 +1,3 @@
1
1
  module Mongo
2
- VERSION = "1.5.1"
2
+ VERSION = "1.5.2"
3
3
  end
@@ -278,6 +278,42 @@ class TestConnection < Test::Unit::TestCase
278
278
  end
279
279
  end
280
280
 
281
+ context "Socket pools" do
282
+ context "checking out writers" do
283
+ setup do
284
+ @con = standard_connection(:pool_size => 10, :timeout => 10)
285
+ @coll = @con[MONGO_TEST_DB]['test-connection-exceptions']
286
+ end
287
+
288
+ should "close the connection on send_message for major exceptions" do
289
+ @con.expects(:checkout_writer).raises(SystemStackError)
290
+ @con.expects(:close)
291
+ begin
292
+ @coll.insert({:foo => "bar"})
293
+ rescue SystemStackError
294
+ end
295
+ end
296
+
297
+ should "close the connection on send_message_with_safe_check for major exceptions" do
298
+ @con.expects(:checkout_writer).raises(SystemStackError)
299
+ @con.expects(:close)
300
+ begin
301
+ @coll.insert({:foo => "bar"}, :safe => true)
302
+ rescue SystemStackError
303
+ end
304
+ end
305
+
306
+ should "close the connection on receive_message for major exceptions" do
307
+ @con.expects(:checkout_writer).raises(SystemStackError)
308
+ @con.expects(:close)
309
+ begin
310
+ @coll.find.next
311
+ rescue SystemStackError
312
+ end
313
+ end
314
+ end
315
+ end
316
+
281
317
  context "Connection exceptions" do
282
318
  setup do
283
319
  @con = standard_connection(:pool_size => 10, :timeout => 10)
@@ -23,6 +23,14 @@ class BasicTest < Test::Unit::TestCase
23
23
  assert @conn.connected?
24
24
  end
25
25
 
26
+ def test_cache_original_seed_nodes
27
+ @conn = ReplSetConnection.new([self.rs.host, self.rs.ports[1]], [self.rs.host, self.rs.ports[0]],
28
+ [self.rs.host, self.rs.ports[2]], [self.rs.host, 19356], :name => self.rs.name)
29
+ assert @conn.connected?
30
+ assert @conn.seeds.include?([self.rs.host, 19356]), "Original seed nodes not cached!"
31
+ assert_equal [self.rs.host, 19356], @conn.seeds.last, "Original seed nodes not cached!"
32
+ end
33
+
26
34
  def test_accessors
27
35
  seeds = [[self.rs.host, self.rs.ports[0]], [self.rs.host, self.rs.ports[1]],
28
36
  [self.rs.host, self.rs.ports[2]]]
@@ -43,4 +51,52 @@ class BasicTest < Test::Unit::TestCase
43
51
  assert_equal 90, @conn.refresh_interval
44
52
  assert_equal @conn.refresh_mode, false
45
53
  end
54
+
55
+ context "Socket pools" do
56
+ context "checking out writers" do
57
+ setup do
58
+ seeds = [[self.rs.host, self.rs.ports[0]], [self.rs.host, self.rs.ports[1]],
59
+ [self.rs.host, self.rs.ports[2]]]
60
+ args = seeds << {:name => self.rs.name}
61
+ @con = ReplSetConnection.new(*args)
62
+ @coll = @con[MONGO_TEST_DB]['test-connection-exceptions']
63
+ end
64
+
65
+ should "close the connection on send_message for major exceptions" do
66
+ @con.expects(:checkout_writer).raises(SystemStackError)
67
+ @con.expects(:close)
68
+ begin
69
+ @coll.insert({:foo => "bar"})
70
+ rescue SystemStackError
71
+ end
72
+ end
73
+
74
+ should "close the connection on send_message_with_safe_check for major exceptions" do
75
+ @con.expects(:checkout_writer).raises(SystemStackError)
76
+ @con.expects(:close)
77
+ begin
78
+ @coll.insert({:foo => "bar"}, :safe => true)
79
+ rescue SystemStackError
80
+ end
81
+ end
82
+
83
+ should "close the connection on receive_message for major exceptions" do
84
+ @con.expects(:checkout_writer).raises(SystemStackError)
85
+ @con.expects(:close)
86
+ begin
87
+ @coll.find.next
88
+ rescue SystemStackError
89
+ end
90
+ end
91
+
92
+ should "close the connection on receive_message for major exceptions" do
93
+ @con.expects(:checkout_reader).raises(SystemStackError)
94
+ @con.expects(:close)
95
+ begin
96
+ @coll.find({}, :read => :secondary).next
97
+ rescue SystemStackError
98
+ end
99
+ end
100
+ end
101
+ end
46
102
  end
@@ -62,13 +62,22 @@ class ConnectTest < Test::Unit::TestCase
62
62
  end
63
63
 
64
64
  def test_connect_with_primary_stepped_down
65
- self.rs.step_down_primary
65
+ @conn = ReplSetConnection.new([self.rs.host, self.rs.ports[0]], [self.rs.host, self.rs.ports[1]],
66
+ [self.rs.host, self.rs.ports[2]])
67
+ @conn[MONGO_TEST_DB]['bar'].save({:a => 1}, {:safe => {:w => 3}})
68
+ assert @conn[MONGO_TEST_DB]['bar'].find_one
69
+
70
+ primary = Mongo::Connection.new(@conn.primary_pool.host, @conn.primary_pool.port)
71
+ primary['admin'].command({:replSetStepDown => 60})
72
+ assert @conn.connected?
73
+ assert_raise_error Mongo::ConnectionFailure, "not master" do
74
+ @conn[MONGO_TEST_DB]['bar'].find_one
75
+ end
76
+ assert !@conn.connected?
66
77
 
67
78
  rescue_connection_failure do
68
- @conn = ReplSetConnection.new([self.rs.host, self.rs.ports[0]], [self.rs.host, self.rs.ports[1]],
69
- [self.rs.host, self.rs.ports[2]])
79
+ @conn[MONGO_TEST_DB]['bar'].find_one
70
80
  end
71
- assert @conn.connected?
72
81
  end
73
82
 
74
83
  def test_connect_with_connection_string
@@ -0,0 +1,58 @@
1
+ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require './test/replica_sets/rs_test_helper'
3
+
4
+ # NOTE: This test expects a replica set of three nodes to be running
5
+ # on the local host.
6
+ class ReplicaSetPooledInsertTest < Test::Unit::TestCase
7
+ include ReplicaSetTest
8
+
9
+ def setup
10
+ @conn = ReplSetConnection.new([self.rs.host, self.rs.ports[0]], [self.rs.host, self.rs.ports[1]],
11
+ [self.rs.host, self.rs.ports[2]], :pool_size => 5, :timeout => 5, :refresh_mode => false)
12
+ @db = @conn.db(MONGO_TEST_DB)
13
+ @db.drop_collection("test-sets")
14
+ @coll = @db.collection("test-sets")
15
+ end
16
+
17
+ def teardown
18
+ self.rs.restart_killed_nodes
19
+ @conn.close if @conn
20
+ end
21
+
22
+ def test_insert
23
+ expected_results = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
24
+ @coll.save({:a => -1}, :safe => true)
25
+
26
+ self.rs.kill_primary
27
+
28
+ threads = []
29
+ 10.times do |i|
30
+ threads[i] = Thread.new do
31
+ rescue_connection_failure do
32
+ @coll.save({:a => i}, :safe => true)
33
+ end
34
+ end
35
+ end
36
+
37
+ threads.each {|t| t.join}
38
+
39
+ # Restart the old master and wait for sync
40
+ self.rs.restart_killed_nodes
41
+ sleep(1)
42
+ results = []
43
+
44
+ rescue_connection_failure do
45
+ @coll.find.each {|r| results << r}
46
+ expected_results.each do |a|
47
+ assert results.any? {|r| r['a'] == a}, "Could not find record for a => #{a}"
48
+ end
49
+ end
50
+
51
+ @coll.save({:a => 10}, :safe => true)
52
+ @coll.find.each {|r| results << r}
53
+ (expected_results + [10]).each do |a|
54
+ assert results.any? {|r| r['a'] == a}, "Could not find record for a => #{a} on second find"
55
+ end
56
+ end
57
+
58
+ end
@@ -5,7 +5,7 @@ class ReplicaSetQueryTest < Test::Unit::TestCase
5
5
  include ReplicaSetTest
6
6
 
7
7
  def setup
8
- @conn = ReplSetConnection.new([self.rs.host, self.rs.ports[0], self.rs.ports[1]])
8
+ @conn = ReplSetConnection.new([self.rs.host, self.rs.ports[0]])
9
9
  @db = @conn.db(MONGO_TEST_DB)
10
10
  @db.drop_collection("test-sets")
11
11
  @coll = @db.collection("test-sets")
@@ -13,6 +13,7 @@ class PoolManagerTest < Test::Unit::TestCase
13
13
  @connection.stubs(:connect_timeout).returns(5000)
14
14
  @connection.stubs(:pool_size).returns(2)
15
15
  @connection.stubs(:pool_timeout).returns(100)
16
+ @connection.stubs(:seeds).returns(['localhost:30000'])
16
17
  @connection.stubs(:socket_class).returns(TCPSocket)
17
18
  @connection.stubs(:[]).returns(@db)
18
19
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 5
9
- - 1
10
- version: 1.5.1
9
+ - 2
10
+ version: 1.5.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jim Menard
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2011-11-29 00:00:00 Z
20
+ date: 2011-12-13 00:00:00 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: bson
@@ -27,12 +27,12 @@ dependencies:
27
27
  requirements:
28
28
  - - "="
29
29
  - !ruby/object:Gem::Version
30
- hash: 1
30
+ hash: 7
31
31
  segments:
32
32
  - 1
33
33
  - 5
34
- - 1
35
- version: 1.5.1
34
+ - 2
35
+ version: 1.5.2
36
36
  type: :runtime
37
37
  version_requirements: *id001
38
38
  description: A Ruby driver for MongoDB. For more information about Mongo, see http://www.mongodb.org.
@@ -50,104 +50,100 @@ files:
50
50
  - LICENSE.txt
51
51
  - lib/mongo.rb
52
52
  - lib/mongo/collection.rb
53
- - lib/mongo/connection.rb
54
- - lib/mongo/cursor.rb
55
- - lib/mongo/db.rb
56
- - lib/mongo/exceptions.rb
53
+ - lib/mongo/networking.rb
57
54
  - lib/mongo/gridfs/grid.rb
58
55
  - lib/mongo/gridfs/grid_ext.rb
59
56
  - lib/mongo/gridfs/grid_file_system.rb
60
57
  - lib/mongo/gridfs/grid_io.rb
61
58
  - lib/mongo/gridfs/grid_io_fix.rb
62
- - lib/mongo/networking.rb
63
- - lib/mongo/repl_set_connection.rb
59
+ - lib/mongo/version.rb
60
+ - lib/mongo/util/pool_manager.rb
64
61
  - lib/mongo/util/conversions.rb
65
62
  - lib/mongo/util/core_ext.rb
66
- - lib/mongo/util/logging.rb
67
- - lib/mongo/util/node.rb
63
+ - lib/mongo/util/ssl_socket.rb
68
64
  - lib/mongo/util/pool.rb
69
- - lib/mongo/util/pool_manager.rb
65
+ - lib/mongo/util/node.rb
66
+ - lib/mongo/util/uri_parser.rb
70
67
  - lib/mongo/util/server_version.rb
71
- - lib/mongo/util/ssl_socket.rb
72
68
  - lib/mongo/util/support.rb
73
- - lib/mongo/util/timeout.rb
74
- - lib/mongo/util/uri_parser.rb
75
- - lib/mongo/version.rb
69
+ - lib/mongo/util/logging.rb
70
+ - lib/mongo/connection.rb
71
+ - lib/mongo/exceptions.rb
72
+ - lib/mongo/repl_set_connection.rb
73
+ - lib/mongo/db.rb
74
+ - lib/mongo/cursor.rb
76
75
  - docs/CREDITS.md
77
- - docs/FAQ.md
76
+ - docs/WRITE_CONCERN.md
77
+ - docs/RELEASES.md
78
78
  - docs/GridFS.md
79
79
  - docs/HISTORY.md
80
- - docs/READ_PREFERENCE.md
81
- - docs/RELEASES.md
80
+ - docs/FAQ.md
81
+ - docs/TUTORIAL.md
82
82
  - docs/REPLICA_SETS.md
83
+ - docs/READ_PREFERENCE.md
83
84
  - docs/TAILABLE_CURSORS.md
84
- - docs/TUTORIAL.md
85
- - docs/WRITE_CONCERN.md
86
85
  - bin/mongo_console
87
- - test/auxillary/1.4_features.rb
88
- - test/auxillary/authentication_test.rb
86
+ - test/tools/repl_set_manager.rb
87
+ - test/tools/auth_repl_set_manager.rb
88
+ - test/uri_test.rb
89
+ - test/conversions_test.rb
90
+ - test/grid_io_test.rb
91
+ - test/cursor_fail_test.rb
92
+ - test/unit/cursor_test.rb
93
+ - test/unit/pool_test.rb
94
+ - test/unit/pool_manager_test.rb
95
+ - test/unit/collection_test.rb
96
+ - test/unit/node_test.rb
97
+ - test/unit/db_test.rb
98
+ - test/unit/connection_test.rb
99
+ - test/unit/read_test.rb
100
+ - test/unit/safe_test.rb
101
+ - test/unit/grid_test.rb
102
+ - test/support_test.rb
103
+ - test/cursor_test.rb
104
+ - test/support/keys.rb
105
+ - test/support/hash_with_indifferent_access.rb
106
+ - test/test_helper.rb
107
+ - test/threading_test.rb
108
+ - test/auxillary/repl_set_auth_test.rb
89
109
  - test/auxillary/autoreconnect_test.rb
110
+ - test/auxillary/threaded_authentication_test.rb
111
+ - test/auxillary/authentication_test.rb
112
+ - test/auxillary/1.4_features.rb
90
113
  - test/auxillary/fork_test.rb
91
- - test/auxillary/repl_set_auth_test.rb
92
114
  - test/auxillary/slave_connection_test.rb
93
- - test/auxillary/threaded_authentication_test.rb
115
+ - test/threading/threading_with_large_pool_test.rb
116
+ - test/replica_sets/pooled_insert_test.rb
117
+ - test/replica_sets/insert_test.rb
118
+ - test/replica_sets/read_preference_test.rb
119
+ - test/replica_sets/connect_test.rb
120
+ - test/replica_sets/basic_test.rb
121
+ - test/replica_sets/count_test.rb
122
+ - test/replica_sets/refresh_test.rb
123
+ - test/replica_sets/replication_ack_test.rb
124
+ - test/replica_sets/query_test.rb
125
+ - test/replica_sets/refresh_with_threads_test.rb
126
+ - test/replica_sets/rs_test_helper.rb
127
+ - test/collection_test.rb
128
+ - test/cursor_message_test.rb
94
129
  - test/bson/binary_test.rb
95
- - test/bson/bson_string_test.rb
96
- - test/bson/bson_test.rb
97
- - test/bson/byte_buffer_test.rb
98
- - test/bson/hash_with_indifferent_access_test.rb
99
130
  - test/bson/json_test.rb
100
- - test/bson/object_id_test.rb
131
+ - test/bson/byte_buffer_test.rb
101
132
  - test/bson/ordered_hash_test.rb
133
+ - test/bson/object_id_test.rb
102
134
  - test/bson/test_helper.rb
135
+ - test/bson/bson_test.rb
103
136
  - test/bson/timestamp_test.rb
104
- - test/collection_test.rb
137
+ - test/bson/hash_with_indifferent_access_test.rb
138
+ - test/load/unicorn/load.rb
139
+ - test/load/thin/load.rb
140
+ - test/db_test.rb
105
141
  - test/connection_test.rb
106
- - test/conversions_test.rb
107
- - test/cursor_fail_test.rb
108
- - test/cursor_message_test.rb
109
- - test/cursor_test.rb
110
142
  - test/db_api_test.rb
111
- - test/db_connection_test.rb
112
- - test/db_test.rb
113
143
  - test/grid_file_system_test.rb
114
- - test/grid_io_test.rb
115
- - test/grid_test.rb
116
- - test/load/thin/load.rb
117
- - test/load/unicorn/load.rb
118
- - test/pool_test.rb
119
- - test/replica_sets/basic_test.rb
120
- - test/replica_sets/connect_test.rb
121
- - test/replica_sets/count_test.rb
122
- - test/replica_sets/insert_test.rb
123
- - test/replica_sets/query_test.rb
124
- - test/replica_sets/read_preference_test.rb
125
- - test/replica_sets/refresh_test.rb
126
- - test/replica_sets/refresh_with_threads_test.rb
127
- - test/replica_sets/replication_ack_test.rb
128
- - test/replica_sets/rs_test_helper.rb
129
- - test/replica_sets/threading_test.rb
130
144
  - test/safe_test.rb
131
- - test/support/hash_with_indifferent_access.rb
132
- - test/support/keys.rb
133
- - test/support_test.rb
134
- - test/test_helper.rb
135
- - test/threading/threading_with_large_pool_test.rb
136
- - test/threading_test.rb
137
- - test/timeout_test.rb
138
- - test/tools/auth_repl_set_manager.rb
139
- - test/tools/repl_set_manager.rb
140
- - test/unit/collection_test.rb
141
- - test/unit/connection_test.rb
142
- - test/unit/cursor_test.rb
143
- - test/unit/db_test.rb
144
- - test/unit/grid_test.rb
145
- - test/unit/node_test.rb
146
- - test/unit/pool_manager_test.rb
147
- - test/unit/pool_test.rb
148
- - test/unit/read_test.rb
149
- - test/unit/safe_test.rb
150
- - test/uri_test.rb
145
+ - test/db_connection_test.rb
146
+ - test/grid_test.rb
151
147
  homepage: http://www.mongodb.org
152
148
  licenses: []
153
149
 
@@ -179,72 +175,69 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
175
  requirements: []
180
176
 
181
177
  rubyforge_project:
182
- rubygems_version: 1.8.11
178
+ rubygems_version: 1.8.10
183
179
  signing_key:
184
180
  specification_version: 3
185
181
  summary: Ruby driver for the MongoDB
186
182
  test_files:
187
- - test/auxillary/1.4_features.rb
188
- - test/auxillary/authentication_test.rb
183
+ - test/tools/repl_set_manager.rb
184
+ - test/tools/auth_repl_set_manager.rb
185
+ - test/uri_test.rb
186
+ - test/conversions_test.rb
187
+ - test/grid_io_test.rb
188
+ - test/cursor_fail_test.rb
189
+ - test/unit/cursor_test.rb
190
+ - test/unit/pool_test.rb
191
+ - test/unit/pool_manager_test.rb
192
+ - test/unit/collection_test.rb
193
+ - test/unit/node_test.rb
194
+ - test/unit/db_test.rb
195
+ - test/unit/connection_test.rb
196
+ - test/unit/read_test.rb
197
+ - test/unit/safe_test.rb
198
+ - test/unit/grid_test.rb
199
+ - test/support_test.rb
200
+ - test/cursor_test.rb
201
+ - test/support/keys.rb
202
+ - test/support/hash_with_indifferent_access.rb
203
+ - test/test_helper.rb
204
+ - test/threading_test.rb
205
+ - test/auxillary/repl_set_auth_test.rb
189
206
  - test/auxillary/autoreconnect_test.rb
207
+ - test/auxillary/threaded_authentication_test.rb
208
+ - test/auxillary/authentication_test.rb
209
+ - test/auxillary/1.4_features.rb
190
210
  - test/auxillary/fork_test.rb
191
- - test/auxillary/repl_set_auth_test.rb
192
211
  - test/auxillary/slave_connection_test.rb
193
- - test/auxillary/threaded_authentication_test.rb
212
+ - test/threading/threading_with_large_pool_test.rb
213
+ - test/replica_sets/pooled_insert_test.rb
214
+ - test/replica_sets/insert_test.rb
215
+ - test/replica_sets/read_preference_test.rb
216
+ - test/replica_sets/connect_test.rb
217
+ - test/replica_sets/basic_test.rb
218
+ - test/replica_sets/count_test.rb
219
+ - test/replica_sets/refresh_test.rb
220
+ - test/replica_sets/replication_ack_test.rb
221
+ - test/replica_sets/query_test.rb
222
+ - test/replica_sets/refresh_with_threads_test.rb
223
+ - test/replica_sets/rs_test_helper.rb
224
+ - test/collection_test.rb
225
+ - test/cursor_message_test.rb
194
226
  - test/bson/binary_test.rb
195
- - test/bson/bson_string_test.rb
196
- - test/bson/bson_test.rb
197
- - test/bson/byte_buffer_test.rb
198
- - test/bson/hash_with_indifferent_access_test.rb
199
227
  - test/bson/json_test.rb
200
- - test/bson/object_id_test.rb
228
+ - test/bson/byte_buffer_test.rb
201
229
  - test/bson/ordered_hash_test.rb
230
+ - test/bson/object_id_test.rb
202
231
  - test/bson/test_helper.rb
232
+ - test/bson/bson_test.rb
203
233
  - test/bson/timestamp_test.rb
204
- - test/collection_test.rb
234
+ - test/bson/hash_with_indifferent_access_test.rb
235
+ - test/load/unicorn/load.rb
236
+ - test/load/thin/load.rb
237
+ - test/db_test.rb
205
238
  - test/connection_test.rb
206
- - test/conversions_test.rb
207
- - test/cursor_fail_test.rb
208
- - test/cursor_message_test.rb
209
- - test/cursor_test.rb
210
239
  - test/db_api_test.rb
211
- - test/db_connection_test.rb
212
- - test/db_test.rb
213
240
  - test/grid_file_system_test.rb
214
- - test/grid_io_test.rb
215
- - test/grid_test.rb
216
- - test/load/thin/load.rb
217
- - test/load/unicorn/load.rb
218
- - test/pool_test.rb
219
- - test/replica_sets/basic_test.rb
220
- - test/replica_sets/connect_test.rb
221
- - test/replica_sets/count_test.rb
222
- - test/replica_sets/insert_test.rb
223
- - test/replica_sets/query_test.rb
224
- - test/replica_sets/read_preference_test.rb
225
- - test/replica_sets/refresh_test.rb
226
- - test/replica_sets/refresh_with_threads_test.rb
227
- - test/replica_sets/replication_ack_test.rb
228
- - test/replica_sets/rs_test_helper.rb
229
- - test/replica_sets/threading_test.rb
230
241
  - test/safe_test.rb
231
- - test/support/hash_with_indifferent_access.rb
232
- - test/support/keys.rb
233
- - test/support_test.rb
234
- - test/test_helper.rb
235
- - test/threading/threading_with_large_pool_test.rb
236
- - test/threading_test.rb
237
- - test/timeout_test.rb
238
- - test/tools/auth_repl_set_manager.rb
239
- - test/tools/repl_set_manager.rb
240
- - test/unit/collection_test.rb
241
- - test/unit/connection_test.rb
242
- - test/unit/cursor_test.rb
243
- - test/unit/db_test.rb
244
- - test/unit/grid_test.rb
245
- - test/unit/node_test.rb
246
- - test/unit/pool_manager_test.rb
247
- - test/unit/pool_test.rb
248
- - test/unit/read_test.rb
249
- - test/unit/safe_test.rb
250
- - test/uri_test.rb
242
+ - test/db_connection_test.rb
243
+ - test/grid_test.rb