mongo 0.1.0 → 0.15

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.
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