mongodb-mongo 0.6.4 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +11 -8
- data/bin/bson_benchmark.rb +59 -0
- data/lib/mongo/cursor.rb +3 -15
- data/lib/mongo/db.rb +17 -0
- data/lib/mongo/message/message_header.rb +1 -7
- data/lib/mongo/util/bson.rb +12 -5
- data/mongo-ruby-driver.gemspec +10 -6
- data/tests/mongo-qa/gridfs_in +16 -0
- data/tests/mongo-qa/gridfs_out +17 -0
- data/tests/test_admin.rb +1 -0
- data/tests/test_chunk.rb +1 -0
- data/tests/test_cursor.rb +61 -46
- data/tests/test_db.rb +1 -0
- data/tests/test_db_api.rb +23 -2
- data/tests/test_db_connection.rb +1 -0
- data/tests/test_grid_store.rb +1 -0
- data/tests/test_mongo.rb +4 -0
- metadata +8 -4
data/Rakefile
CHANGED
@@ -8,6 +8,8 @@ begin
|
|
8
8
|
require 'rake/contrib/rubyforgepublisher'
|
9
9
|
rescue LoadError
|
10
10
|
end
|
11
|
+
require 'rbconfig'
|
12
|
+
include Config
|
11
13
|
|
12
14
|
# NOTE: some of the tests assume Mongo is running
|
13
15
|
Rake::TestTask.new do |t|
|
@@ -26,14 +28,6 @@ task :publish => [:rdoc] do
|
|
26
28
|
Rake::RubyForgePublisher.new(GEM, RUBYFORGE_USER).upload
|
27
29
|
end
|
28
30
|
|
29
|
-
desc "Compile the extension"
|
30
|
-
task :compile do
|
31
|
-
cd 'ext/cbson'
|
32
|
-
ruby 'extconf.rb'
|
33
|
-
sh 'make'
|
34
|
-
cp 'cbson.bundle', '../../lib/mongo/ext/cbson.bundle'
|
35
|
-
end
|
36
|
-
|
37
31
|
namespace :gem do
|
38
32
|
|
39
33
|
desc "Install the gem locally"
|
@@ -45,6 +39,15 @@ gem build mongo-ruby-driver.gemspec &&
|
|
45
39
|
EOS
|
46
40
|
end
|
47
41
|
|
42
|
+
desc "Install the optional c extensions"
|
43
|
+
task :install_extensions do
|
44
|
+
sh <<EOS
|
45
|
+
gem build mongo-extensions.gemspec &&
|
46
|
+
sudo gem install mongo_ext-*.gem &&
|
47
|
+
rm mongo_ext-*.gem
|
48
|
+
EOS
|
49
|
+
end
|
50
|
+
|
48
51
|
end
|
49
52
|
|
50
53
|
task :default => :list
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$LOAD_PATH[0,0] = File.join(File.dirname(__FILE__), '..', 'lib')
|
4
|
+
require 'mongo'
|
5
|
+
|
6
|
+
include XGen::Mongo::Driver
|
7
|
+
|
8
|
+
TRIALS = 100000
|
9
|
+
|
10
|
+
def encode(doc)
|
11
|
+
t0 = Time.new
|
12
|
+
b = BSON.new
|
13
|
+
TRIALS.times { |i|
|
14
|
+
b = BSON.new
|
15
|
+
b.serialize doc
|
16
|
+
}
|
17
|
+
print "took: #{Time.now.to_f - t0.to_f}\n"
|
18
|
+
return b
|
19
|
+
end
|
20
|
+
|
21
|
+
def decode(bson)
|
22
|
+
t0 = Time.new
|
23
|
+
doc = nil
|
24
|
+
TRIALS.times { |i|
|
25
|
+
doc = bson.deserialize
|
26
|
+
}
|
27
|
+
print "took: #{Time.now.to_f - t0.to_f}\n"
|
28
|
+
return doc
|
29
|
+
end
|
30
|
+
|
31
|
+
TEST_CASES = [{},
|
32
|
+
{
|
33
|
+
"hello" => "world"
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"hello" => "world",
|
37
|
+
"mike" => "something",
|
38
|
+
"here's" => "another"
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"int" => 200,
|
42
|
+
"bool" => true,
|
43
|
+
"an int" => 20,
|
44
|
+
"a bool" => false
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"this" => 5,
|
48
|
+
"is" => {"a" => true},
|
49
|
+
"big" => [true, 5.5],
|
50
|
+
"object" => nil
|
51
|
+
}]
|
52
|
+
|
53
|
+
TEST_CASES.each { |doc|
|
54
|
+
print "case #{doc.inspect}\n"
|
55
|
+
print "enc bson\n"
|
56
|
+
enc_bson = encode(doc)
|
57
|
+
print "dec bson\n"
|
58
|
+
raise "FAIL" unless doc == decode(enc_bson)
|
59
|
+
}
|
data/lib/mongo/cursor.rb
CHANGED
@@ -18,9 +18,6 @@ require 'mongo/message'
|
|
18
18
|
require 'mongo/util/byte_buffer'
|
19
19
|
require 'mongo/util/bson'
|
20
20
|
|
21
|
-
require 'logger'
|
22
|
-
LOG = Logger.new('recv_file.log', 'daily')
|
23
|
-
|
24
21
|
module XGen
|
25
22
|
module Mongo
|
26
23
|
module Driver
|
@@ -168,10 +165,7 @@ module XGen
|
|
168
165
|
|
169
166
|
def read_response_header
|
170
167
|
header_buf = ByteBuffer.new
|
171
|
-
|
172
|
-
header_buf.put_array(read.unpack("C*"))
|
173
|
-
LOG.debug "resp head: #{read.inspect}\n"
|
174
|
-
raise "BAD SIZE" unless read.length == RESPONSE_HEADER_SIZE
|
168
|
+
header_buf.put_array(@db.receive_full(RESPONSE_HEADER_SIZE).unpack("C*"))
|
175
169
|
raise "Short read for DB response header; expected #{RESPONSE_HEADER_SIZE} bytes, saw #{header_buf.length}" unless header_buf.length == RESPONSE_HEADER_SIZE
|
176
170
|
header_buf.rewind
|
177
171
|
@result_flags = header_buf.get_int
|
@@ -206,16 +200,10 @@ module XGen
|
|
206
200
|
|
207
201
|
def object_from_stream
|
208
202
|
buf = ByteBuffer.new
|
209
|
-
|
210
|
-
buf.put_array(read1.unpack("C*"))
|
211
|
-
LOG.debug "size: #{read1.inspect}\n"
|
212
|
-
raise "BAD SIZE" unless read1.length == 4
|
203
|
+
buf.put_array(@db.receive_full(4).unpack("C*"))
|
213
204
|
buf.rewind
|
214
205
|
size = buf.get_int
|
215
|
-
|
216
|
-
buf.put_array(read2.unpack("C*"), 4)
|
217
|
-
LOG.debug "body: #{read2.inspect}\n"
|
218
|
-
raise "BAD SIZE" unless read2.length == size - 4
|
206
|
+
buf.put_array(@db.receive_full(size - 4).unpack("C*"), 4)
|
219
207
|
@n_remaining -= 1
|
220
208
|
buf.rewind
|
221
209
|
BSON.new.deserialize(buf)
|
data/lib/mongo/db.rb
CHANGED
@@ -374,6 +374,23 @@ module XGen
|
|
374
374
|
raise "Error with count command: #{doc.inspect}"
|
375
375
|
end
|
376
376
|
|
377
|
+
# Evaluate a JavaScript expression on MongoDB.
|
378
|
+
# +code+ should be a string or Code instance containing a JavaScript
|
379
|
+
# expression. Additional arguments will be passed to that expression
|
380
|
+
# when it is run on the server.
|
381
|
+
def eval(code, *args)
|
382
|
+
if not code.is_a? Code
|
383
|
+
code = Code.new(code)
|
384
|
+
end
|
385
|
+
|
386
|
+
oh = OrderedHash.new
|
387
|
+
oh[:$eval] = code
|
388
|
+
oh[:args] = args
|
389
|
+
doc = db_command(oh)
|
390
|
+
return doc['retval'] if ok?(doc)
|
391
|
+
raise "Error with eval command: #{doc.inspect}"
|
392
|
+
end
|
393
|
+
|
377
394
|
# Drop index +name+ from +collection_name+. Normally called from
|
378
395
|
# Collection#drop_index or Collection#drop_indexes.
|
379
396
|
def drop_index(collection_name, name)
|
@@ -16,9 +16,6 @@
|
|
16
16
|
|
17
17
|
require 'mongo/util/byte_buffer'
|
18
18
|
|
19
|
-
require 'logger'
|
20
|
-
LOG = Logger.new('recv_file.log', 'daily')
|
21
|
-
|
22
19
|
module XGen
|
23
20
|
module Mongo
|
24
21
|
module Driver
|
@@ -33,10 +30,7 @@ module XGen
|
|
33
30
|
|
34
31
|
def read_header(db)
|
35
32
|
@buf.rewind
|
36
|
-
|
37
|
-
@buf.put_array(read.unpack("C*"))
|
38
|
-
LOG.debug "header: #{read.inspect}\n"
|
39
|
-
raise "BAD SIZE" unless read.length == HEADER_SIZE
|
33
|
+
@buf.put_array(db.receive_full(HEADER_SIZE).unpack("C*"))
|
40
34
|
raise "Short read for DB response header: expected #{HEADER_SIZE} bytes, saw #{@buf.size}" unless @buf.size == HEADER_SIZE
|
41
35
|
@buf.rewind
|
42
36
|
@size = @buf.get_int
|
data/lib/mongo/util/bson.rb
CHANGED
@@ -71,7 +71,7 @@ class BSON
|
|
71
71
|
end
|
72
72
|
|
73
73
|
begin
|
74
|
-
require '
|
74
|
+
require 'mongo_ext/cbson'
|
75
75
|
def serialize(obj)
|
76
76
|
@buf = ByteBuffer.new(CBson.serialize(obj))
|
77
77
|
end
|
@@ -129,7 +129,7 @@ class BSON
|
|
129
129
|
end
|
130
130
|
|
131
131
|
begin
|
132
|
-
require '
|
132
|
+
require 'mongo_ext/cbson'
|
133
133
|
def deserialize(buf=nil)
|
134
134
|
if buf.is_a? String
|
135
135
|
@buf = ByteBuffer.new(buf) if buf
|
@@ -245,7 +245,12 @@ class BSON
|
|
245
245
|
def deserialize_object_data(buf)
|
246
246
|
size = buf.get_int
|
247
247
|
buf.position -= 4
|
248
|
-
BSON.new().deserialize(buf.get(size))
|
248
|
+
object = BSON.new().deserialize(buf.get(size))
|
249
|
+
if object.has_key? "$ref"
|
250
|
+
DBRef.new(object["$ref"], object["$id"])
|
251
|
+
else
|
252
|
+
object
|
253
|
+
end
|
249
254
|
end
|
250
255
|
|
251
256
|
def deserialize_array_data(buf)
|
@@ -324,8 +329,10 @@ class BSON
|
|
324
329
|
end
|
325
330
|
|
326
331
|
def serialize_dbref_element(buf, key, val)
|
327
|
-
|
328
|
-
|
332
|
+
oh = OrderedHash.new
|
333
|
+
oh['$ref'] = val.namespace
|
334
|
+
oh['$id'] = val.object_id
|
335
|
+
serialize_object_element(buf, key, oh)
|
329
336
|
end
|
330
337
|
|
331
338
|
def serialize_binary_element(buf, key, val)
|
data/mongo-ruby-driver.gemspec
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
+
# We need to list all of the included files because we aren't allowed to use
|
2
|
+
# Dir[...] in the github sandbox.
|
1
3
|
PACKAGE_FILES = ['README.rdoc', 'Rakefile', 'mongo-ruby-driver.gemspec',
|
4
|
+
'bin/bson_benchmark.rb',
|
2
5
|
'bin/mongo_console',
|
3
6
|
'bin/run_test_script',
|
4
7
|
'bin/standard_benchmark',
|
@@ -45,7 +48,6 @@ PACKAGE_FILES = ['README.rdoc', 'Rakefile', 'mongo-ruby-driver.gemspec',
|
|
45
48
|
'lib/mongo/util/ordered_hash.rb',
|
46
49
|
'lib/mongo/util/xml_to_ruby.rb',
|
47
50
|
'lib/mongo.rb']
|
48
|
-
|
49
51
|
TEST_FILES = ['tests/mongo-qa/_common.rb',
|
50
52
|
'tests/mongo-qa/admin',
|
51
53
|
'tests/mongo-qa/capped',
|
@@ -53,6 +55,8 @@ TEST_FILES = ['tests/mongo-qa/_common.rb',
|
|
53
55
|
'tests/mongo-qa/dbs',
|
54
56
|
'tests/mongo-qa/find',
|
55
57
|
'tests/mongo-qa/find1',
|
58
|
+
'tests/mongo-qa/gridfs_in',
|
59
|
+
'tests/mongo-qa/gridfs_out',
|
56
60
|
'tests/mongo-qa/indices',
|
57
61
|
'tests/mongo-qa/remove',
|
58
62
|
'tests/mongo-qa/stress1',
|
@@ -75,10 +79,10 @@ TEST_FILES = ['tests/mongo-qa/_common.rb',
|
|
75
79
|
|
76
80
|
Gem::Specification.new do |s|
|
77
81
|
s.name = 'mongo'
|
78
|
-
s.version = '0.6.
|
82
|
+
s.version = '0.6.5'
|
79
83
|
s.platform = Gem::Platform::RUBY
|
80
|
-
s.summary = '
|
81
|
-
s.description = 'A
|
84
|
+
s.summary = 'Ruby driver for the 10gen Mongo DB'
|
85
|
+
s.description = 'A Ruby driver for the 10gen Mongo DB. For more information about Mongo, see http://www.mongodb.org.'
|
82
86
|
|
83
87
|
s.require_paths = ['lib']
|
84
88
|
|
@@ -89,7 +93,7 @@ Gem::Specification.new do |s|
|
|
89
93
|
s.rdoc_options = ['--main', 'README.rdoc', '--inline-source']
|
90
94
|
s.extra_rdoc_files = ['README.rdoc']
|
91
95
|
|
92
|
-
s.
|
93
|
-
s.email = '
|
96
|
+
s.authors = ['Jim Menard', 'Mike Dirolf']
|
97
|
+
s.email = 'mongodb-dev@googlegroups.com'
|
94
98
|
s.homepage = 'http://www.mongodb.org'
|
95
99
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.join(File.dirname(__FILE__), '_common.rb')
|
4
|
+
|
5
|
+
require 'mongo/gridfs'
|
6
|
+
include XGen::Mongo::GridFS
|
7
|
+
|
8
|
+
db = Mongo.new(DEFAULT_HOST, DEFAULT_PORT).db(DEFAULT_DB)
|
9
|
+
|
10
|
+
input_file = ARGV[0]
|
11
|
+
|
12
|
+
File.open(input_file, "r") { |f|
|
13
|
+
GridStore.open(db, input_file, "w") { |g|
|
14
|
+
g.write(f.read)
|
15
|
+
}
|
16
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.join(File.dirname(__FILE__), '_common.rb')
|
4
|
+
|
5
|
+
require 'mongo/gridfs'
|
6
|
+
include XGen::Mongo::GridFS
|
7
|
+
|
8
|
+
db = Mongo.new(DEFAULT_HOST, DEFAULT_PORT).db(DEFAULT_DB)
|
9
|
+
|
10
|
+
input_file = ARGV[0]
|
11
|
+
output_file = ARGV[1]
|
12
|
+
|
13
|
+
File.open(output_file, "w") { |f|
|
14
|
+
GridStore.open(db, input_file, "r") { |g|
|
15
|
+
f.write(g.read)
|
16
|
+
}
|
17
|
+
}
|
data/tests/test_admin.rb
CHANGED
data/tests/test_chunk.rb
CHANGED
data/tests/test_cursor.rb
CHANGED
@@ -19,6 +19,7 @@ class CursorTest < Test::Unit::TestCase
|
|
19
19
|
|
20
20
|
def teardown
|
21
21
|
@@coll.clear
|
22
|
+
@@db.error
|
22
23
|
end
|
23
24
|
|
24
25
|
def test_explain
|
@@ -41,55 +42,69 @@ class CursorTest < Test::Unit::TestCase
|
|
41
42
|
end
|
42
43
|
|
43
44
|
def test_refill_via_get_more
|
44
|
-
|
45
|
-
@@coll.
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
45
|
+
begin
|
46
|
+
assert_equal 1, @@coll.count
|
47
|
+
1000.times { |i|
|
48
|
+
assert_equal 1 + i, @@coll.count
|
49
|
+
@@coll.insert('a' => i)
|
50
|
+
}
|
51
|
+
|
52
|
+
assert_equal 1001, @@coll.count
|
53
|
+
count = 0
|
54
|
+
@@coll.find.each { |obj|
|
55
|
+
count += obj['a']
|
56
|
+
}
|
57
|
+
assert_equal 1001, @@coll.count
|
58
|
+
|
59
|
+
# do the same thing again for debugging
|
60
|
+
assert_equal 1001, @@coll.count
|
61
|
+
count2 = 0
|
62
|
+
@@coll.find.each { |obj|
|
63
|
+
count2 += obj['a']
|
64
|
+
}
|
65
|
+
assert_equal 1001, @@coll.count
|
66
|
+
|
67
|
+
assert_equal count, count2
|
68
|
+
assert_equal 499501, count
|
69
|
+
rescue Test::Unit::AssertionFailedError => ex
|
70
|
+
p @@db.collection_names
|
71
|
+
Process.exit 1
|
72
|
+
end
|
65
73
|
end
|
66
74
|
|
67
75
|
def test_refill_via_get_more_alt_coll
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
76
|
+
begin
|
77
|
+
coll = @@db.collection('test-alt-coll')
|
78
|
+
coll.clear
|
79
|
+
coll.insert('a' => 1) # collection not created until it's used
|
80
|
+
assert_equal 1, coll.count
|
81
|
+
|
82
|
+
1000.times { |i|
|
83
|
+
assert_equal 1 + i, coll.count
|
84
|
+
coll.insert('a' => i)
|
85
|
+
}
|
86
|
+
|
87
|
+
assert_equal 1001, coll.count
|
88
|
+
count = 0
|
89
|
+
coll.find.each { |obj|
|
90
|
+
count += obj['a']
|
91
|
+
}
|
92
|
+
assert_equal 1001, coll.count
|
93
|
+
|
94
|
+
# do the same thing again for debugging
|
95
|
+
assert_equal 1001, coll.count
|
96
|
+
count2 = 0
|
97
|
+
coll.find.each { |obj|
|
98
|
+
count2 += obj['a']
|
99
|
+
}
|
100
|
+
assert_equal 1001, coll.count
|
101
|
+
|
102
|
+
assert_equal count, count2
|
103
|
+
assert_equal 499501, count
|
104
|
+
rescue Test::Unit::AssertionFailedError => ex
|
105
|
+
p @@db.collection_names
|
106
|
+
Process.exit 1
|
107
|
+
end
|
93
108
|
end
|
94
109
|
|
95
110
|
def test_close_after_query_sent
|
data/tests/test_db.rb
CHANGED
data/tests/test_db_api.rb
CHANGED
@@ -19,6 +19,7 @@ class DBAPITest < Test::Unit::TestCase
|
|
19
19
|
|
20
20
|
def teardown
|
21
21
|
@@coll.clear
|
22
|
+
@@db.error
|
22
23
|
end
|
23
24
|
|
24
25
|
def test_clear
|
@@ -447,8 +448,28 @@ class DBAPITest < Test::Unit::TestCase
|
|
447
448
|
@@coll.insert('a' => 3)
|
448
449
|
|
449
450
|
assert_equal 3, @@coll.count
|
450
|
-
assert_equal 1, @@coll.
|
451
|
-
assert_equal 2, @@coll.
|
451
|
+
assert_equal 1, @@coll.count('$where' => Code.new('this.a > 2'))
|
452
|
+
assert_equal 2, @@coll.count('$where' => Code.new('this.a > i', {'i' => 1}))
|
453
|
+
end
|
454
|
+
|
455
|
+
def test_eval
|
456
|
+
assert_equal 3, @@db.eval('function (x) {return x;}', 3)
|
457
|
+
|
458
|
+
assert_equal nil, @@db.eval("function (x) {db.test_eval.save({y:x});}", 5)
|
459
|
+
assert_equal 5, @@db.collection('test_eval').find_first['y']
|
460
|
+
|
461
|
+
assert_equal 5, @@db.eval("function (x, y) {return x + y;}", 2, 3)
|
462
|
+
assert_equal 5, @@db.eval("function () {return 5;}")
|
463
|
+
assert_equal 5, @@db.eval("2 + 3;")
|
464
|
+
|
465
|
+
assert_equal 5, @@db.eval(Code.new("2 + 3;"))
|
466
|
+
assert_equal nil, @@db.eval(Code.new("return i;"))
|
467
|
+
assert_equal 2, @@db.eval(Code.new("return i;", {"i" => 2}))
|
468
|
+
assert_equal 5, @@db.eval(Code.new("i + 3;", {"i" => 2}))
|
469
|
+
|
470
|
+
assert_raise RuntimeError do
|
471
|
+
@@db.eval("5 ++ 5;")
|
472
|
+
end
|
452
473
|
end
|
453
474
|
|
454
475
|
def test_hint
|
data/tests/test_db_connection.rb
CHANGED
data/tests/test_grid_store.rb
CHANGED
data/tests/test_mongo.rb
CHANGED
@@ -13,6 +13,10 @@ class MongoTest < Test::Unit::TestCase
|
|
13
13
|
@mongo = Mongo.new(@host, @port)
|
14
14
|
end
|
15
15
|
|
16
|
+
def teardown
|
17
|
+
@mongo.db('ruby-mongo-test').error
|
18
|
+
end
|
19
|
+
|
16
20
|
def test_database_info
|
17
21
|
@mongo.drop_database('ruby-mongo-info-test')
|
18
22
|
@mongo.db('ruby-mongo-info-test').collection('info-test').insert('a' => 1)
|
metadata
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongodb-mongo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Menard
|
8
|
+
- Mike Dirolf
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
@@ -13,8 +14,8 @@ date: 2009-02-25 00:00:00 -08:00
|
|
13
14
|
default_executable:
|
14
15
|
dependencies: []
|
15
16
|
|
16
|
-
description: A
|
17
|
-
email:
|
17
|
+
description: A Ruby driver for the 10gen Mongo DB. For more information about Mongo, see http://www.mongodb.org.
|
18
|
+
email: mongodb-dev@googlegroups.com
|
18
19
|
executables: []
|
19
20
|
|
20
21
|
extensions: []
|
@@ -25,6 +26,7 @@ files:
|
|
25
26
|
- README.rdoc
|
26
27
|
- Rakefile
|
27
28
|
- mongo-ruby-driver.gemspec
|
29
|
+
- bin/bson_benchmark.rb
|
28
30
|
- bin/mongo_console
|
29
31
|
- bin/run_test_script
|
30
32
|
- bin/standard_benchmark
|
@@ -98,7 +100,7 @@ rubyforge_project:
|
|
98
100
|
rubygems_version: 1.2.0
|
99
101
|
signing_key:
|
100
102
|
specification_version: 2
|
101
|
-
summary:
|
103
|
+
summary: Ruby driver for the 10gen Mongo DB
|
102
104
|
test_files:
|
103
105
|
- tests/mongo-qa/_common.rb
|
104
106
|
- tests/mongo-qa/admin
|
@@ -107,6 +109,8 @@ test_files:
|
|
107
109
|
- tests/mongo-qa/dbs
|
108
110
|
- tests/mongo-qa/find
|
109
111
|
- tests/mongo-qa/find1
|
112
|
+
- tests/mongo-qa/gridfs_in
|
113
|
+
- tests/mongo-qa/gridfs_out
|
110
114
|
- tests/mongo-qa/indices
|
111
115
|
- tests/mongo-qa/remove
|
112
116
|
- tests/mongo-qa/stress1
|