mongo 0.1.0 → 0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. data/README.rdoc +268 -71
  2. data/Rakefile +27 -62
  3. data/bin/bson_benchmark.rb +59 -0
  4. data/bin/mongo_console +3 -3
  5. data/bin/run_test_script +19 -0
  6. data/bin/standard_benchmark +109 -0
  7. data/examples/admin.rb +41 -0
  8. data/examples/benchmarks.rb +42 -0
  9. data/examples/blog.rb +76 -0
  10. data/examples/capped.rb +23 -0
  11. data/examples/cursor.rb +47 -0
  12. data/examples/gridfs.rb +87 -0
  13. data/examples/index_test.rb +125 -0
  14. data/examples/info.rb +30 -0
  15. data/examples/queries.rb +69 -0
  16. data/examples/simple.rb +23 -0
  17. data/examples/strict.rb +34 -0
  18. data/examples/types.rb +35 -0
  19. data/lib/mongo.rb +9 -2
  20. data/lib/mongo/admin.rb +65 -68
  21. data/lib/mongo/collection.rb +379 -117
  22. data/lib/mongo/connection.rb +151 -0
  23. data/lib/mongo/cursor.rb +271 -216
  24. data/lib/mongo/db.rb +500 -315
  25. data/lib/mongo/errors.rb +26 -0
  26. data/lib/mongo/gridfs.rb +16 -0
  27. data/lib/mongo/gridfs/chunk.rb +92 -0
  28. data/lib/mongo/gridfs/grid_store.rb +464 -0
  29. data/lib/mongo/message.rb +16 -0
  30. data/lib/mongo/message/get_more_message.rb +24 -13
  31. data/lib/mongo/message/insert_message.rb +29 -11
  32. data/lib/mongo/message/kill_cursors_message.rb +23 -12
  33. data/lib/mongo/message/message.rb +74 -62
  34. data/lib/mongo/message/message_header.rb +35 -24
  35. data/lib/mongo/message/msg_message.rb +21 -9
  36. data/lib/mongo/message/opcodes.rb +26 -15
  37. data/lib/mongo/message/query_message.rb +63 -43
  38. data/lib/mongo/message/remove_message.rb +29 -12
  39. data/lib/mongo/message/update_message.rb +30 -13
  40. data/lib/mongo/query.rb +97 -89
  41. data/lib/mongo/types/binary.rb +25 -21
  42. data/lib/mongo/types/code.rb +30 -0
  43. data/lib/mongo/types/dbref.rb +19 -23
  44. data/lib/mongo/types/objectid.rb +130 -116
  45. data/lib/mongo/types/regexp_of_holding.rb +27 -31
  46. data/lib/mongo/util/bson.rb +273 -160
  47. data/lib/mongo/util/byte_buffer.rb +32 -28
  48. data/lib/mongo/util/ordered_hash.rb +88 -42
  49. data/lib/mongo/util/xml_to_ruby.rb +18 -15
  50. data/mongo-ruby-driver.gemspec +103 -0
  51. data/test/mongo-qa/_common.rb +8 -0
  52. data/test/mongo-qa/admin +26 -0
  53. data/test/mongo-qa/capped +22 -0
  54. data/test/mongo-qa/count1 +18 -0
  55. data/test/mongo-qa/dbs +22 -0
  56. data/test/mongo-qa/find +10 -0
  57. data/test/mongo-qa/find1 +15 -0
  58. data/test/mongo-qa/gridfs_in +16 -0
  59. data/test/mongo-qa/gridfs_out +17 -0
  60. data/test/mongo-qa/indices +49 -0
  61. data/test/mongo-qa/remove +25 -0
  62. data/test/mongo-qa/stress1 +35 -0
  63. data/test/mongo-qa/test1 +11 -0
  64. data/test/mongo-qa/update +18 -0
  65. data/{tests → test}/test_admin.rb +25 -16
  66. data/test/test_bson.rb +268 -0
  67. data/{tests → test}/test_byte_buffer.rb +0 -0
  68. data/test/test_chunk.rb +84 -0
  69. data/test/test_collection.rb +282 -0
  70. data/test/test_connection.rb +101 -0
  71. data/test/test_cursor.rb +321 -0
  72. data/test/test_db.rb +196 -0
  73. data/test/test_db_api.rb +798 -0
  74. data/{tests → test}/test_db_connection.rb +4 -3
  75. data/test/test_grid_store.rb +284 -0
  76. data/{tests → test}/test_message.rb +1 -1
  77. data/test/test_objectid.rb +105 -0
  78. data/{tests → test}/test_ordered_hash.rb +55 -0
  79. data/{tests → test}/test_round_trip.rb +13 -9
  80. data/test/test_threading.rb +37 -0
  81. metadata +74 -32
  82. data/bin/validate +0 -51
  83. data/lib/mongo/mongo.rb +0 -74
  84. data/lib/mongo/types/undefined.rb +0 -31
  85. data/tests/test_bson.rb +0 -135
  86. data/tests/test_cursor.rb +0 -66
  87. data/tests/test_db.rb +0 -51
  88. data/tests/test_db_api.rb +0 -349
  89. data/tests/test_objectid.rb +0 -88
@@ -1,88 +0,0 @@
1
- $LOAD_PATH[0,0] = File.join(File.dirname(__FILE__), '..', 'lib')
2
- require 'mongo'
3
- require 'test/unit'
4
-
5
- class ObjectIDTest < Test::Unit::TestCase
6
-
7
- include XGen::Mongo::Driver
8
-
9
- def setup
10
- @t = 42
11
- @o = ObjectID.new(nil, @t)
12
- end
13
-
14
- def test_index_for_time
15
- t = 99
16
- assert_equal 0, @o.index_for_time(t)
17
- assert_equal 1, @o.index_for_time(t)
18
- assert_equal 2, @o.index_for_time(t)
19
- t = 100
20
- assert_equal 0, @o.index_for_time(t)
21
- end
22
-
23
- def test_time_bytes
24
- a = @o.to_a
25
- assert_equal @t, a[0]
26
- 3.times { |i| assert_equal 0, a[i+1] }
27
-
28
- t = 43
29
- o = ObjectID.new(nil, t)
30
- a = o.to_a
31
- assert_equal t, a[0]
32
- 3.times { |i| assert_equal 0, a[i+1] }
33
- assert_equal 1, o.index_for_time(t) # 0 was used for o
34
- end
35
-
36
- def test_different
37
- o2 = ObjectID.new(nil, @t)
38
- assert @o.to_a != o2.to_a
39
- end
40
-
41
- def test_eql?
42
- o2 = ObjectID.new(@o.to_a)
43
- assert @o.eql?(o2)
44
- assert @o == o2
45
- end
46
-
47
- def test_to_s
48
- s = @o.to_s
49
- assert_equal 24, s.length
50
- s =~ /^([0-9a-f]+)$/
51
- assert_equal 24, $1.length
52
- end
53
-
54
- def test_save_and_restore
55
- host = ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost'
56
- port = ENV['MONGO_RUBY_DRIVER_PORT'] || Mongo::DEFAULT_PORT
57
- db = Mongo.new(host, port).db('ruby-mongo-test')
58
- coll = db.collection('test')
59
-
60
- coll.clear
61
- coll << {'a' => 1, '_id' => @o}
62
-
63
- row = coll.find().collect.first
64
- assert_equal 1, row['a']
65
- assert_equal @o, row['_id']
66
- end
67
-
68
- def test_from_string
69
- hex_str = @o.to_s
70
- o2 = ObjectID.from_string(hex_str)
71
- assert_equal hex_str, o2.to_s
72
- assert_equal @o, o2
73
- assert_equal @o.to_s, o2.to_s
74
- end
75
-
76
- def test_from_string_leading_zeroes
77
- hex_str = '000000000000000000abcdef'
78
- o = ObjectID.from_string(hex_str)
79
- assert_equal hex_str, o.to_s
80
- end
81
-
82
- def test_byte_order
83
- hex_str = '000102030405060708090A0B'
84
- o = ObjectID.from_string(hex_str)
85
- assert_equal [0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0b, 0x0a, 0x09, 0x08], o.to_a
86
- end
87
-
88
- end