mongo 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/README.md +9 -6
  2. data/Rakefile +3 -4
  3. data/docs/HISTORY.md +20 -2
  4. data/docs/READ_PREFERENCE.md +39 -0
  5. data/docs/RELEASES.md +1 -1
  6. data/docs/REPLICA_SETS.md +23 -2
  7. data/docs/TAILABLE_CURSORS.md +51 -0
  8. data/docs/TUTORIAL.md +4 -4
  9. data/docs/WRITE_CONCERN.md +5 -2
  10. data/lib/mongo.rb +7 -22
  11. data/lib/mongo/collection.rb +96 -29
  12. data/lib/mongo/connection.rb +107 -62
  13. data/lib/mongo/cursor.rb +136 -57
  14. data/lib/mongo/db.rb +26 -5
  15. data/lib/mongo/exceptions.rb +17 -1
  16. data/lib/mongo/gridfs/grid.rb +1 -1
  17. data/lib/mongo/repl_set_connection.rb +273 -156
  18. data/lib/mongo/util/logging.rb +42 -0
  19. data/lib/mongo/util/node.rb +183 -0
  20. data/lib/mongo/util/pool.rb +76 -13
  21. data/lib/mongo/util/pool_manager.rb +208 -0
  22. data/lib/mongo/util/ssl_socket.rb +38 -0
  23. data/lib/mongo/util/support.rb +9 -1
  24. data/lib/mongo/util/timeout.rb +42 -0
  25. data/lib/mongo/version.rb +3 -0
  26. data/mongo.gemspec +2 -2
  27. data/test/bson/binary_test.rb +1 -1
  28. data/test/bson/bson_string_test.rb +30 -0
  29. data/test/bson/bson_test.rb +6 -3
  30. data/test/bson/byte_buffer_test.rb +1 -1
  31. data/test/bson/hash_with_indifferent_access_test.rb +1 -1
  32. data/test/bson/json_test.rb +1 -1
  33. data/test/bson/object_id_test.rb +2 -18
  34. data/test/bson/ordered_hash_test.rb +38 -3
  35. data/test/bson/test_helper.rb +46 -0
  36. data/test/bson/timestamp_test.rb +32 -10
  37. data/test/collection_test.rb +89 -3
  38. data/test/connection_test.rb +35 -20
  39. data/test/cursor_test.rb +63 -2
  40. data/test/db_test.rb +12 -2
  41. data/test/pool_test.rb +21 -0
  42. data/test/replica_sets/connect_test.rb +26 -13
  43. data/test/replica_sets/connection_string_test.rb +1 -4
  44. data/test/replica_sets/count_test.rb +1 -0
  45. data/test/replica_sets/insert_test.rb +1 -0
  46. data/test/replica_sets/pooled_insert_test.rb +4 -1
  47. data/test/replica_sets/query_secondaries.rb +2 -1
  48. data/test/replica_sets/query_test.rb +2 -1
  49. data/test/replica_sets/read_preference_test.rb +43 -0
  50. data/test/replica_sets/refresh_test.rb +123 -0
  51. data/test/replica_sets/replication_ack_test.rb +9 -4
  52. data/test/replica_sets/rs_test_helper.rb +2 -2
  53. data/test/timeout_test.rb +14 -0
  54. data/test/tools/repl_set_manager.rb +134 -23
  55. data/test/unit/collection_test.rb +6 -8
  56. data/test/unit/connection_test.rb +4 -4
  57. data/test/unit/cursor_test.rb +23 -5
  58. data/test/unit/db_test.rb +2 -0
  59. data/test/unit/grid_test.rb +2 -0
  60. data/test/unit/node_test.rb +73 -0
  61. data/test/unit/pool_manager_test.rb +47 -0
  62. data/test/unit/read_test.rb +101 -0
  63. metadata +214 -138
  64. data/lib/mongo/test.rb +0 -20
  65. data/test/async/collection_test.rb +0 -224
  66. data/test/async/connection_test.rb +0 -24
  67. data/test/async/cursor_test.rb +0 -162
  68. data/test/async/worker_pool_test.rb +0 -99
  69. data/test/load/resque/load.rb +0 -21
  70. data/test/load/resque/processor.rb +0 -26
  71. data/test/load/unicorn/unicorn.rb +0 -29
  72. data/test/tools/load.rb +0 -58
  73. data/test/tools/sharding_manager.rb +0 -202
  74. data/test/tools/test.rb +0 -4
  75. data/test/unit/repl_set_connection_test.rb +0 -59
@@ -15,7 +15,7 @@ class CollectionTest < Test::Unit::TestCase
15
15
  @conn.expects(:send_message).with do |op, msg, log|
16
16
  op == 2001
17
17
  end
18
- @conn.stubs(:log_operation)
18
+ @coll.stubs(:log_operation)
19
19
  @coll.update({}, {:title => 'Moby Dick'})
20
20
  end
21
21
 
@@ -26,7 +26,7 @@ class CollectionTest < Test::Unit::TestCase
26
26
  @conn.expects(:send_message).with do |op, msg, log|
27
27
  op == 2002
28
28
  end
29
- @conn.expects(:log_operation).with do |name, payload|
29
+ @coll.expects(:log_operation).with do |name, payload|
30
30
  (name == :insert) && payload[:documents][0][:title].include?('Moby')
31
31
  end
32
32
  @coll.insert({:title => 'Moby Dick'})
@@ -39,9 +39,7 @@ class CollectionTest < Test::Unit::TestCase
39
39
  @conn.expects(:receive_message).with do |op, msg, log, sock|
40
40
  op == 2004
41
41
  end.returns([[], 0, 0])
42
- @conn.expects(:log_operation).with do |name, payload|
43
- (name == :find) && payload[:selector][:title].include?('Moby')
44
- end
42
+ @logger.expects(:debug)
45
43
  @coll.find({:title => 'Moby Dick'}).sort([['title', 1], ['author', 1]]).next_document
46
44
  end
47
45
 
@@ -53,7 +51,7 @@ class CollectionTest < Test::Unit::TestCase
53
51
  @conn.expects(:send_message).with do |op, msg, log|
54
52
  op == 2002
55
53
  end
56
- @conn.expects(:log_operation).with do |name, payload|
54
+ @coll.expects(:log_operation).with do |name, payload|
57
55
  (name == :insert) && payload[:documents][0][:data].inspect.include?('Binary')
58
56
  end
59
57
  @coll.insert({:data => data})
@@ -66,7 +64,7 @@ class CollectionTest < Test::Unit::TestCase
66
64
  @conn.expects(:send_message_with_safe_check).with do |op, msg, db_name, log|
67
65
  op == 2001
68
66
  end
69
- @conn.expects(:log_operation).with do |name, payload|
67
+ @coll.expects(:log_operation).with do |name, payload|
70
68
  (name == :update) && payload[:document][:title].include?('Moby')
71
69
  end
72
70
  @coll.update({}, {:title => 'Moby Dick'}, :safe => true)
@@ -79,7 +77,7 @@ class CollectionTest < Test::Unit::TestCase
79
77
  @conn.expects(:send_message_with_safe_check).with do |op, msg, db_name, log|
80
78
  op == 2001
81
79
  end
82
- @conn.stubs(:log_operation)
80
+ @coll.stubs(:log_operation)
83
81
  @coll.update({}, {:title => 'Moby Dick'}, :safe => true)
84
82
  end
85
83
 
@@ -9,8 +9,8 @@ class ConnectionTest < Test::Unit::TestCase
9
9
  TCPSocket.stubs(:new).returns(new_mock_socket)
10
10
 
11
11
  admin_db = new_mock_db
12
- admin_db.expects(:command).returns({'ok' => 1, 'ismaster' => 1}).twice
13
- @conn.expects(:[]).with('admin').returns(admin_db).twice
12
+ admin_db.expects(:command).returns({'ok' => 1, 'ismaster' => 1})
13
+ @conn.expects(:[]).with('admin').returns(admin_db)
14
14
  @conn.connect
15
15
  end
16
16
 
@@ -52,8 +52,8 @@ class ConnectionTest < Test::Unit::TestCase
52
52
  @conn = Connection.from_uri("mongodb://localhost", :connect => false)
53
53
 
54
54
  admin_db = new_mock_db
55
- admin_db.expects(:command).returns({'ok' => 1, 'ismaster' => 1}).twice
56
- @conn.expects(:[]).with('admin').returns(admin_db).twice
55
+ admin_db.expects(:command).returns({'ok' => 1, 'ismaster' => 1})
56
+ @conn.expects(:[]).with('admin').returns(admin_db)
57
57
  @conn.connect
58
58
  end
59
59
 
@@ -5,9 +5,9 @@ class CursorTest < Test::Unit::TestCase
5
5
  setup do
6
6
  @logger = mock()
7
7
  @logger.stubs(:debug)
8
- @connection = stub(:class => Connection, :logger => @logger)
9
- @db = stub(:name => "testing", :slave_ok? => false, :connection => @connection)
10
- @collection = stub(:db => @db, :name => "items")
8
+ @connection = stub(:class => Connection, :logger => @logger, :slave_ok? => false, :read_preference => :primary)
9
+ @db = stub(:name => "testing", :slave_ok? => false, :connection => @connection, :read_preference => :primary)
10
+ @collection = stub(:db => @db, :name => "items", :read_preference => :primary)
11
11
  @cursor = Cursor.new(@collection)
12
12
  end
13
13
 
@@ -76,15 +76,33 @@ class CursorTest < Test::Unit::TestCase
76
76
  should "cache full collection name" do
77
77
  assert_equal "testing.items", @cursor.full_collection_name
78
78
  end
79
+
80
+ should "raise error when batch_size is 1" do
81
+ e = assert_raise ArgumentError do
82
+ @cursor.batch_size(1)
83
+ end
84
+ assert_equal "Invalid value for batch_size 1; must be 0 or > 1.", e.message
85
+ end
86
+
87
+ should "use the limit for batch size when it's smaller than the specified batch_size" do
88
+ @cursor.limit(99)
89
+ @cursor.batch_size(100)
90
+ assert_equal 99, @cursor.batch_size
91
+ end
92
+
93
+ should "use the specified batch_size" do
94
+ @cursor.batch_size(100)
95
+ assert_equal 100, @cursor.batch_size
96
+ end
79
97
  end
80
98
 
81
99
  context "Query fields" do
82
100
  setup do
83
101
  @logger = mock()
84
102
  @logger.stubs(:debug)
85
- @connection = stub(:class => Connection, :logger => @logger)
103
+ @connection = stub(:class => Connection, :logger => @logger, :slave_ok? => false)
86
104
  @db = stub(:slave_ok? => true, :name => "testing", :connection => @connection)
87
- @collection = stub(:db => @db, :name => "items")
105
+ @collection = stub(:db => @db, :name => "items", :read_preference => :primary)
88
106
  end
89
107
 
90
108
  should "when an array should return a hash with each key" do
@@ -15,8 +15,10 @@ class DBTest < Test::Unit::TestCase
15
15
  setup do
16
16
  @conn = stub()
17
17
  @conn.stubs(:safe)
18
+ @conn.stubs(:read_preference)
18
19
  @db = DB.new("testing", @conn)
19
20
  @db.stubs(:safe)
21
+ @db.stubs(:read_preference)
20
22
  @collection = mock()
21
23
  @db.stubs(:system_command_collection).returns(@collection)
22
24
  end
@@ -6,6 +6,7 @@ class GridTest < Test::Unit::TestCase
6
6
  setup do
7
7
  @conn = stub()
8
8
  @conn.stubs(:safe)
9
+ @conn.stubs(:read_preference)
9
10
  @db = DB.new("testing", @conn)
10
11
  @files = mock()
11
12
  @chunks = mock()
@@ -13,6 +14,7 @@ class GridTest < Test::Unit::TestCase
13
14
  @db.expects(:[]).with('fs.files').returns(@files)
14
15
  @db.expects(:[]).with('fs.chunks').returns(@chunks)
15
16
  @db.stubs(:safe)
17
+ @db.stubs(:read_preference)
16
18
  end
17
19
 
18
20
  context "Grid classe with standard connections" do
@@ -0,0 +1,73 @@
1
+ require './test/test_helper'
2
+
3
+ class NodeTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @connection = stub()
7
+ end
8
+
9
+ should "refuse to connect to node without 'hosts' key" do
10
+ tcp = mock()
11
+ node = Node.new(@connection, ['localhost', 27017])
12
+ tcp.stubs(:new).returns(new_mock_socket)
13
+ @connection.stubs(:socket_class).returns(tcp)
14
+
15
+ admin_db = new_mock_db
16
+ admin_db.stubs(:command).returns({'ok' => 1, 'ismaster' => 1})
17
+ @connection.stubs(:[]).with('admin').returns(admin_db)
18
+ @connection.stubs(:connect_timeout).returns(nil)
19
+ @connection.expects(:log)
20
+
21
+ assert node.connect
22
+ node.set_config
23
+ end
24
+
25
+ should "load a node from an array" do
26
+ node = Node.new(@connection, ['power.level.com', 9001])
27
+ assert_equal 'power.level.com', node.host
28
+ assert_equal 9001, node.port
29
+ assert_equal 'power.level.com:9001', node.address
30
+ end
31
+
32
+ should "should default the port for an array" do
33
+ node = Node.new(@connection, ['power.level.com'])
34
+ assert_equal 'power.level.com', node.host
35
+ assert_equal Connection::DEFAULT_PORT, node.port
36
+ assert_equal "power.level.com:#{Connection::DEFAULT_PORT}", node.address
37
+ end
38
+
39
+ should "load a node from a string" do
40
+ node = Node.new(@connection, 'localhost:1234')
41
+ assert_equal 'localhost', node.host
42
+ assert_equal 1234, node.port
43
+ assert_equal 'localhost:1234', node.address
44
+ end
45
+
46
+ should "should default the port for a string" do
47
+ node = Node.new(@connection, '192.168.0.1')
48
+ assert_equal '192.168.0.1', node.host
49
+ assert_equal Connection::DEFAULT_PORT, node.port
50
+ assert_equal "192.168.0.1:#{Connection::DEFAULT_PORT}", node.address
51
+ end
52
+
53
+ should "two nodes with the same address should be equal" do
54
+ assert_equal Node.new(@connection, '192.168.0.1'),
55
+ Node.new(@connection, ['192.168.0.1', Connection::DEFAULT_PORT])
56
+ end
57
+
58
+ should "two nodes with the same address should have the same hash" do
59
+ assert_equal Node.new(@connection, '192.168.0.1').hash,
60
+ Node.new(@connection, ['192.168.0.1', Connection::DEFAULT_PORT]).hash
61
+ end
62
+
63
+ should "two nodes with different addresses should not be equal" do
64
+ assert_not_equal Node.new(@connection, '192.168.0.2'),
65
+ Node.new(@connection, ['192.168.0.1', Connection::DEFAULT_PORT])
66
+ end
67
+
68
+ should "two nodes with the same address should have the same hash negate" do
69
+ assert_not_equal Node.new(@connection, '192.168.0.1').hash,
70
+ Node.new(@connection, '1239.33.4.2393:29949').hash
71
+ end
72
+
73
+ end
@@ -0,0 +1,47 @@
1
+ require './test/test_helper'
2
+ include Mongo
3
+
4
+ class PoolManagerTest < Test::Unit::TestCase
5
+
6
+ context "Initialization: " do
7
+
8
+ should "populate pools correctly" do
9
+ TCPSocket.stubs(:new).returns(new_mock_socket)
10
+ @db = new_mock_db
11
+
12
+ @connection = stub("Connection")
13
+ @connection.stubs(:connect_timeout).returns(5000)
14
+ @connection.stubs(:pool_size).returns(2)
15
+ @connection.stubs(:socket_class).returns(TCPSocket)
16
+ @connection.stubs(:[]).returns(@db)
17
+
18
+ @connection.stubs(:replica_set_name).returns(nil)
19
+ @connection.stubs(:log)
20
+ @arbiters = ['localhost:27020']
21
+ @hosts = ['localhost:27017', 'localhost:27018', 'localhost:27019',
22
+ 'localhost:27020']
23
+
24
+ @db.stubs(:command).returns(
25
+ # First call to get a socket.
26
+ {'ismaster' => true, 'hosts' => @hosts, 'arbiters' => @arbiters},
27
+
28
+ # Subsequent calls to configure pools.
29
+ {'ismaster' => true, 'hosts' => @hosts, 'arbiters' => @arbiters},
30
+ {'secondary' => true, 'hosts' => @hosts, 'arbiters' => @arbiters},
31
+ {'secondary' => true, 'hosts' => @hosts, 'arbiters' => @arbiters},
32
+ {'arbiterOnly' => true, 'hosts' => @hosts, 'arbiters' => @arbiters})
33
+
34
+ seeds = [['localhost', 27017]]
35
+ manager = Mongo::PoolManager.new(@connection, seeds)
36
+ manager.connect
37
+
38
+ assert_equal ['localhost', 27017], manager.primary
39
+ assert_equal 27017, manager.primary_pool.port
40
+ assert_equal 2, manager.secondaries.length
41
+ assert_equal 27018, manager.secondary_pools[0].port
42
+ assert_equal [['localhost', 27020]], manager.arbiters
43
+ end
44
+
45
+ end
46
+
47
+ end
@@ -0,0 +1,101 @@
1
+ require './test/test_helper'
2
+
3
+ class ReadTest < Test::Unit::TestCase
4
+
5
+ context "Read mode on standard connection: " do
6
+ setup do
7
+ @read_preference = :secondary
8
+ @con = Mongo::Connection.new('localhost', 27017, :read => @read_preference, :connect => false)
9
+ end
10
+
11
+ end
12
+
13
+ context "Read mode on connection: " do
14
+ setup do
15
+ @read_preference = :secondary
16
+ @con = Mongo::ReplSetConnection.new(['localhost', 27017], :read => @read_preference, :connect => false)
17
+ end
18
+
19
+ should "store read preference on Connection" do
20
+ assert_equal @read_preference, @con.read_preference
21
+ end
22
+
23
+ should "propogate to DB" do
24
+ db = @con['foo']
25
+ assert_equal @read_preference, db.read_preference
26
+
27
+ db = @con.db('foo')
28
+ assert_equal @read_preference, db.read_preference
29
+
30
+ db = DB.new('foo', @con)
31
+ assert_equal @read_preference, db.read_preference
32
+ end
33
+
34
+ should "allow db override" do
35
+ db = DB.new('foo', @con, :read => :primary)
36
+ assert_equal :primary, db.read_preference
37
+
38
+ db = @con.db('foo', :read => :primary)
39
+ assert_equal :primary, db.read_preference
40
+ end
41
+
42
+ context "on DB: " do
43
+ setup do
44
+ @db = @con['foo']
45
+ end
46
+
47
+ should "propogate to collection" do
48
+ col = @db.collection('bar')
49
+ assert_equal @read_preference, col.read_preference
50
+
51
+ col = @db['bar']
52
+ assert_equal @read_preference, col.read_preference
53
+
54
+ col = Collection.new('bar', @db)
55
+ assert_equal @read_preference, col.read_preference
56
+ end
57
+
58
+ should "allow override on collection" do
59
+ col = @db.collection('bar', :read => :primary)
60
+ assert_equal :primary, col.read_preference
61
+
62
+ col = Collection.new('bar', @db, :read => :primary)
63
+ assert_equal :primary, col.read_preference
64
+ end
65
+ end
66
+
67
+ context "on read mode ops" do
68
+ setup do
69
+ @col = @con['foo']['bar']
70
+ @mock_socket = stub()
71
+ end
72
+
73
+ should "use default value on query" do
74
+ @con.expects(:receive_message).with do |o, m, l, s, c, r|
75
+ r == :secondary
76
+ end.returns([[], 0, 0])
77
+
78
+ @col.find_one({:a => 1})
79
+ end
80
+
81
+ should "allow override default value on query" do
82
+ @con.expects(:receive_message).with do |o, m, l, s, c, r|
83
+ r == :primary
84
+ end.returns([[], 0, 0])
85
+
86
+ @col.find_one({:a => 1}, :read => :primary)
87
+ end
88
+
89
+ should "allow override alternate value on query" do
90
+ # TODO: enable this test once we enable reading from tags.
91
+ # @con.expects(:receive_message).with do |o, m, l, s, c, r|
92
+ # tags = {:dc => "ny"}
93
+ # end.returns([[], 0, 0])
94
+
95
+ assert_raise MongoArgumentError do
96
+ @col.find_one({:a => 1}, :read => {:dc => "ny"})
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
metadata CHANGED
@@ -1,175 +1,251 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 7
5
+ prerelease:
5
6
  segments:
6
- - 1
7
- - 3
8
- - 1
9
- version: 1.3.1
7
+ - 1
8
+ - 4
9
+ - 0
10
+ version: 1.4.0
10
11
  platform: ruby
11
12
  authors:
12
- - Jim Menard
13
- - Mike Dirolf
14
- - Kyle Banker
13
+ - Jim Menard
14
+ - Mike Dirolf
15
+ - Kyle Banker
15
16
  autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2011-05-11 00:00:00 -04:00
20
+ date: 2011-09-20 00:00:00 -04:00
20
21
  default_executable:
21
22
  dependencies:
22
- - !ruby/object:Gem::Dependency
23
- name: bson
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- segments:
30
- - 1
31
- - 3
32
- - 1
33
- version: 1.3.1
34
- type: :runtime
35
- version_requirements: *id001
23
+ - !ruby/object:Gem::Dependency
24
+ name: bson
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - "="
30
+ - !ruby/object:Gem::Version
31
+ hash: 7
32
+ segments:
33
+ - 1
34
+ - 4
35
+ - 0
36
+ version: 1.4.0
37
+ type: :runtime
38
+ version_requirements: *id001
36
39
  description: A Ruby driver for MongoDB. For more information about Mongo, see http://www.mongodb.org.
37
40
  email: mongodb-dev@googlegroups.com
38
41
  executables:
39
- - mongo_console
42
+ - mongo_console
40
43
  extensions: []
41
44
 
42
45
  extra_rdoc_files:
43
- - README.md
46
+ - README.md
44
47
  files:
45
- - README.md
46
- - Rakefile
47
- - mongo.gemspec
48
- - LICENSE.txt
49
- - lib/mongo.rb
50
- - lib/mongo/cursor.rb
51
- - lib/mongo/collection.rb
52
- - lib/mongo/exceptions.rb
53
- - lib/mongo/connection.rb
54
- - lib/mongo/repl_set_connection.rb
55
- - lib/mongo/test.rb
56
- - lib/mongo/db.rb
57
- - lib/mongo/gridfs/grid_io.rb
58
- - lib/mongo/gridfs/grid_file_system.rb
59
- - lib/mongo/gridfs/grid.rb
60
- - lib/mongo/gridfs/grid_ext.rb
61
- - lib/mongo/gridfs/grid_io_fix.rb
62
- - lib/mongo/util/conversions.rb
63
- - lib/mongo/util/support.rb
64
- - lib/mongo/util/pool.rb
65
- - lib/mongo/util/core_ext.rb
66
- - lib/mongo/util/server_version.rb
67
- - lib/mongo/util/uri_parser.rb
68
- - docs/HISTORY.md
69
- - docs/TUTORIAL.md
70
- - docs/CREDITS.md
71
- - docs/FAQ.md
72
- - docs/REPLICA_SETS.md
73
- - docs/RELEASES.md
74
- - docs/GridFS.md
75
- - docs/WRITE_CONCERN.md
76
- - bin/mongo_console
48
+ - README.md
49
+ - Rakefile
50
+ - mongo.gemspec
51
+ - LICENSE.txt
52
+ - lib/mongo.rb
53
+ - lib/mongo/collection.rb
54
+ - lib/mongo/connection.rb
55
+ - lib/mongo/cursor.rb
56
+ - lib/mongo/db.rb
57
+ - lib/mongo/exceptions.rb
58
+ - lib/mongo/gridfs/grid.rb
59
+ - lib/mongo/gridfs/grid_ext.rb
60
+ - lib/mongo/gridfs/grid_file_system.rb
61
+ - lib/mongo/gridfs/grid_io.rb
62
+ - lib/mongo/gridfs/grid_io_fix.rb
63
+ - lib/mongo/repl_set_connection.rb
64
+ - lib/mongo/util/conversions.rb
65
+ - lib/mongo/util/core_ext.rb
66
+ - lib/mongo/util/logging.rb
67
+ - lib/mongo/util/node.rb
68
+ - lib/mongo/util/pool.rb
69
+ - lib/mongo/util/pool_manager.rb
70
+ - lib/mongo/util/server_version.rb
71
+ - lib/mongo/util/ssl_socket.rb
72
+ - lib/mongo/util/support.rb
73
+ - lib/mongo/util/timeout.rb
74
+ - lib/mongo/util/uri_parser.rb
75
+ - lib/mongo/version.rb
76
+ - docs/CREDITS.md
77
+ - docs/FAQ.md
78
+ - docs/GridFS.md
79
+ - docs/HISTORY.md
80
+ - docs/READ_PREFERENCE.md
81
+ - docs/RELEASES.md
82
+ - docs/REPLICA_SETS.md
83
+ - docs/TAILABLE_CURSORS.md
84
+ - docs/TUTORIAL.md
85
+ - docs/WRITE_CONCERN.md
86
+ - bin/mongo_console
87
+ - test/auxillary/1.4_features.rb
88
+ - test/auxillary/authentication_test.rb
89
+ - test/auxillary/autoreconnect_test.rb
90
+ - test/auxillary/fork_test.rb
91
+ - test/auxillary/repl_set_auth_test.rb
92
+ - test/auxillary/slave_connection_test.rb
93
+ - test/auxillary/threaded_authentication_test.rb
94
+ - 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
+ - test/bson/json_test.rb
100
+ - test/bson/object_id_test.rb
101
+ - test/bson/ordered_hash_test.rb
102
+ - test/bson/test_helper.rb
103
+ - test/bson/timestamp_test.rb
104
+ - test/collection_test.rb
105
+ - 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
+ - test/db_api_test.rb
111
+ - test/db_connection_test.rb
112
+ - test/db_test.rb
113
+ - 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/connect_test.rb
120
+ - test/replica_sets/connection_string_test.rb
121
+ - test/replica_sets/count_test.rb
122
+ - test/replica_sets/insert_test.rb
123
+ - test/replica_sets/pooled_insert_test.rb
124
+ - test/replica_sets/query_secondaries.rb
125
+ - test/replica_sets/query_test.rb
126
+ - test/replica_sets/read_preference_test.rb
127
+ - test/replica_sets/refresh_test.rb
128
+ - test/replica_sets/replication_ack_test.rb
129
+ - test/replica_sets/rs_test_helper.rb
130
+ - 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
77
151
  has_rdoc: true
78
152
  homepage: http://www.mongodb.org
79
153
  licenses: []
80
154
 
81
155
  post_install_message:
82
156
  rdoc_options:
83
- - --main
84
- - README.md
85
- - --inline-source
157
+ - --main
158
+ - README.md
159
+ - --inline-source
86
160
  require_paths:
87
- - lib
161
+ - lib
88
162
  required_ruby_version: !ruby/object:Gem::Requirement
163
+ none: false
89
164
  requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- segments:
93
- - 0
94
- version: "0"
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ hash: 3
168
+ segments:
169
+ - 0
170
+ version: "0"
95
171
  required_rubygems_version: !ruby/object:Gem::Requirement
172
+ none: false
96
173
  requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- segments:
100
- - 0
101
- version: "0"
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ hash: 3
177
+ segments:
178
+ - 0
179
+ version: "0"
102
180
  requirements: []
103
181
 
104
182
  rubyforge_project:
105
- rubygems_version: 1.3.6
183
+ rubygems_version: 1.5.2
106
184
  signing_key:
107
185
  specification_version: 3
108
186
  summary: Ruby driver for the MongoDB
109
187
  test_files:
110
- - test/grid_file_system_test.rb
111
- - test/db_test.rb
112
- - test/collection_test.rb
113
- - test/cursor_test.rb
114
- - test/grid_test.rb
115
- - test/db_api_test.rb
116
- - test/conversions_test.rb
117
- - test/connection_test.rb
118
- - test/uri_test.rb
119
- - test/cursor_message_test.rb
120
- - test/cursor_fail_test.rb
121
- - test/test_helper.rb
122
- - test/grid_io_test.rb
123
- - test/db_connection_test.rb
124
- - test/safe_test.rb
125
- - test/support_test.rb
126
- - test/threading_test.rb
127
- - test/unit/db_test.rb
128
- - test/unit/repl_set_connection_test.rb
129
- - test/unit/collection_test.rb
130
- - test/unit/cursor_test.rb
131
- - test/unit/grid_test.rb
132
- - test/unit/connection_test.rb
133
- - test/unit/pool_test.rb
134
- - test/unit/safe_test.rb
135
- - test/async/collection_test.rb
136
- - test/async/cursor_test.rb
137
- - test/async/connection_test.rb
138
- - test/async/worker_pool_test.rb
139
- - test/load/unicorn/unicorn.rb
140
- - test/load/unicorn/load.rb
141
- - test/load/resque/processor.rb
142
- - test/load/resque/load.rb
143
- - test/load/thin/load.rb
144
- - test/auxillary/slave_connection_test.rb
145
- - test/auxillary/threaded_authentication_test.rb
146
- - test/auxillary/authentication_test.rb
147
- - test/auxillary/fork_test.rb
148
- - test/auxillary/autoreconnect_test.rb
149
- - test/auxillary/repl_set_auth_test.rb
150
- - test/auxillary/1.4_features.rb
151
- - test/tools/test.rb
152
- - test/tools/repl_set_manager.rb
153
- - test/tools/auth_repl_set_manager.rb
154
- - test/tools/load.rb
155
- - test/tools/sharding_manager.rb
156
- - test/threading/threading_with_large_pool_test.rb
157
- - test/bson/byte_buffer_test.rb
158
- - test/bson/binary_test.rb
159
- - test/bson/object_id_test.rb
160
- - test/bson/json_test.rb
161
- - test/bson/timestamp_test.rb
162
- - test/bson/bson_test.rb
163
- - test/bson/ordered_hash_test.rb
164
- - test/bson/hash_with_indifferent_access_test.rb
165
- - test/support/keys.rb
166
- - test/support/hash_with_indifferent_access.rb
167
- - test/replica_sets/rs_test_helper.rb
168
- - test/replica_sets/pooled_insert_test.rb
169
- - test/replica_sets/count_test.rb
170
- - test/replica_sets/replication_ack_test.rb
171
- - test/replica_sets/query_secondaries.rb
172
- - test/replica_sets/query_test.rb
173
- - test/replica_sets/connection_string_test.rb
174
- - test/replica_sets/insert_test.rb
175
- - test/replica_sets/connect_test.rb
188
+ - test/auxillary/1.4_features.rb
189
+ - test/auxillary/authentication_test.rb
190
+ - test/auxillary/autoreconnect_test.rb
191
+ - test/auxillary/fork_test.rb
192
+ - test/auxillary/repl_set_auth_test.rb
193
+ - test/auxillary/slave_connection_test.rb
194
+ - test/auxillary/threaded_authentication_test.rb
195
+ - test/bson/binary_test.rb
196
+ - test/bson/bson_string_test.rb
197
+ - test/bson/bson_test.rb
198
+ - test/bson/byte_buffer_test.rb
199
+ - test/bson/hash_with_indifferent_access_test.rb
200
+ - test/bson/json_test.rb
201
+ - test/bson/object_id_test.rb
202
+ - test/bson/ordered_hash_test.rb
203
+ - test/bson/test_helper.rb
204
+ - test/bson/timestamp_test.rb
205
+ - test/collection_test.rb
206
+ - test/connection_test.rb
207
+ - test/conversions_test.rb
208
+ - test/cursor_fail_test.rb
209
+ - test/cursor_message_test.rb
210
+ - test/cursor_test.rb
211
+ - test/db_api_test.rb
212
+ - test/db_connection_test.rb
213
+ - test/db_test.rb
214
+ - test/grid_file_system_test.rb
215
+ - test/grid_io_test.rb
216
+ - test/grid_test.rb
217
+ - test/load/thin/load.rb
218
+ - test/load/unicorn/load.rb
219
+ - test/pool_test.rb
220
+ - test/replica_sets/connect_test.rb
221
+ - test/replica_sets/connection_string_test.rb
222
+ - test/replica_sets/count_test.rb
223
+ - test/replica_sets/insert_test.rb
224
+ - test/replica_sets/pooled_insert_test.rb
225
+ - test/replica_sets/query_secondaries.rb
226
+ - test/replica_sets/query_test.rb
227
+ - test/replica_sets/read_preference_test.rb
228
+ - test/replica_sets/refresh_test.rb
229
+ - test/replica_sets/replication_ack_test.rb
230
+ - test/replica_sets/rs_test_helper.rb
231
+ - test/safe_test.rb
232
+ - test/support/hash_with_indifferent_access.rb
233
+ - test/support/keys.rb
234
+ - test/support_test.rb
235
+ - test/test_helper.rb
236
+ - test/threading/threading_with_large_pool_test.rb
237
+ - test/threading_test.rb
238
+ - test/timeout_test.rb
239
+ - test/tools/auth_repl_set_manager.rb
240
+ - test/tools/repl_set_manager.rb
241
+ - test/unit/collection_test.rb
242
+ - test/unit/connection_test.rb
243
+ - test/unit/cursor_test.rb
244
+ - test/unit/db_test.rb
245
+ - test/unit/grid_test.rb
246
+ - test/unit/node_test.rb
247
+ - test/unit/pool_manager_test.rb
248
+ - test/unit/pool_test.rb
249
+ - test/unit/read_test.rb
250
+ - test/unit/safe_test.rb
251
+ - test/uri_test.rb