mongodb-mongo 0.14 → 0.14.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -256,7 +256,7 @@ validator script.
256
256
 
257
257
  = Documentation
258
258
 
259
- This documentation is available online at http://mongo.rubyforge.org. You can
259
+ This documentation is available online at http://api.mongodb.org/ruby. You can
260
260
  generate the documentation if you have the source by typing
261
261
 
262
262
  $ rake rdoc
@@ -297,6 +297,9 @@ Paul Dlug, paul.dlug@gmail.com
297
297
  * Generate _id on the client side if not provided
298
298
  * Collection#insert and Collection#save return _id
299
299
 
300
+ Durran Jordan and Les Hill, durran@gmail.com
301
+ * DB#collections
302
+
300
303
  = License
301
304
 
302
305
  Copyright 2008-2009 10gen Inc.
@@ -192,6 +192,14 @@ module Mongo
192
192
  names.map {|name| name.sub(@name + '.', '')}
193
193
  end
194
194
 
195
+ # Retruns an array of Collection instances, one for each collection in this
196
+ # database.
197
+ def collections
198
+ collection_names.map do |collection_name|
199
+ Collection.new(self, collection_name)
200
+ end
201
+ end
202
+
195
203
  # Returns a cursor over query result hashes. Each hash contains a
196
204
  # 'name' string and optionally an 'options' hash. If +coll_name+ is
197
205
  # specified, an array of length 1 is returned.
@@ -83,13 +83,12 @@ TEST_FILES = ['test/mongo-qa/_common.rb',
83
83
 
84
84
  Gem::Specification.new do |s|
85
85
  s.name = 'mongo'
86
- s.version = '0.14'
86
+ s.version = '0.14.1'
87
87
  s.platform = Gem::Platform::RUBY
88
88
  s.summary = 'Ruby driver for the 10gen Mongo DB'
89
89
  s.description = 'A Ruby driver for the 10gen Mongo DB. For more information about Mongo, see http://www.mongodb.org.'
90
90
 
91
91
  s.require_paths = ['lib']
92
-
93
92
  s.files = PACKAGE_FILES
94
93
  s.test_files = TEST_FILES
95
94
 
@@ -48,7 +48,7 @@ class TestCollection < Test::Unit::TestCase
48
48
  a = {"hello" => "world"}
49
49
  @@test.insert(a)
50
50
  @@test.insert(a)
51
- assert @@db.error.include? "E11000"
51
+ assert(@@db.error.include?("E11000"))
52
52
 
53
53
  assert_raise OperationFailure do
54
54
  @@test.insert(a, :safe => true)
@@ -92,7 +92,7 @@ class TestCollection < Test::Unit::TestCase
92
92
 
93
93
  @@test.save("hello" => "world")
94
94
  @@test.save("hello" => "world")
95
- assert @@db.error.include? "E11000"
95
+ assert(@@db.error.include?("E11000"))
96
96
 
97
97
  assert_raise OperationFailure do
98
98
  @@test.save({"hello" => "world"}, :safe => true)
@@ -137,19 +137,19 @@ class TestCollection < Test::Unit::TestCase
137
137
  def test_insert_adds_id
138
138
  doc = {"hello" => "world"}
139
139
  @@test.insert(doc)
140
- assert doc.include? :_id
140
+ assert(doc.include?(:_id))
141
141
 
142
142
  docs = [{"hello" => "world"}, {"hello" => "world"}]
143
143
  @@test.insert(docs)
144
144
  docs.each do |doc|
145
- assert doc.include? :_id
145
+ assert(doc.include?(:_id))
146
146
  end
147
147
  end
148
148
 
149
149
  def test_save_adds_id
150
150
  doc = {"hello" => "world"}
151
151
  @@test.save(doc)
152
- assert doc.include? :_id
152
+ assert(doc.include?(:_id))
153
153
  end
154
154
 
155
155
  def test_optional_find_block
@@ -183,8 +183,10 @@ class TestCollection < Test::Unit::TestCase
183
183
 
184
184
  assert_equal :mike, @@test.find_one(:foo => :mike)["foo"]
185
185
  assert_equal :mike, @@test.find_one("foo" => :mike)["foo"]
186
- assert_equal nil, @@test.find_one(:foo => "mike")
187
- assert_equal nil, @@test.find_one("foo" => "mike")
186
+
187
+ # TODO enable these tests conditionally based on server version (if >1.0)
188
+ # assert_equal :mike, @@test.find_one(:foo => "mike")["foo"]
189
+ # assert_equal :mike, @@test.find_one("foo" => "mike")["foo"]
188
190
  end
189
191
 
190
192
  def test_group_with_scope
@@ -63,6 +63,18 @@ class DBTest < Test::Unit::TestCase
63
63
  }
64
64
  end
65
65
 
66
+ def test_collections
67
+ @@db.collection("test.durran").insert("foo" => 5)
68
+ @@db.collection("test.les").insert("bar" => 0)
69
+
70
+ colls = @@db.collections()
71
+ assert_not_nil colls.select { |coll| coll.name == "test.durran" }
72
+ assert_not_nil colls.select { |coll| coll.name == "test.les" }
73
+ assert_equal [], colls.select { |coll| coll.name == "does_not_exist" }
74
+
75
+ assert_kind_of Collection, colls[0]
76
+ end
77
+
66
78
  def test_pair
67
79
  @@db.close
68
80
  @@users = nil
@@ -809,4 +809,24 @@ class DBAPITest < Test::Unit::TestCase
809
809
  @@db.collection("test").find({}, :snapshot => true, :sort => 'a').to_a
810
810
  end
811
811
  end
812
+
813
+ def test_encodings
814
+ if RUBY_VERSION >= '1.9'
815
+ ascii = "hello world"
816
+ utf8 = "hello world".encode("UTF-8")
817
+ iso8859 = "hello world".encode("ISO-8859-1")
818
+
819
+ assert_equal "US-ASCII", ascii.encoding.name
820
+ assert_equal "UTF-8", utf8.encoding.name
821
+ assert_equal "ISO-8859-1", iso8859.encoding.name
822
+
823
+ @@coll.clear
824
+ @@coll.save("ascii" => ascii, "utf8" => utf8, "iso8859" => iso8859)
825
+ doc = @@coll.find_one()
826
+
827
+ assert_equal "UTF-8", doc["ascii"].encoding.name
828
+ assert_equal "UTF-8", doc["utf8"].encoding.name
829
+ assert_equal "UTF-8", doc["iso8859"].encoding.name
830
+ end
831
+ end
812
832
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongodb-mongo
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.14"
4
+ version: 0.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Menard
@@ -76,7 +76,6 @@ files:
76
76
  - lib/mongo.rb
77
77
  has_rdoc: true
78
78
  homepage: http://www.mongodb.org
79
- licenses:
80
79
  post_install_message:
81
80
  rdoc_options:
82
81
  - --main
@@ -99,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
98
  requirements: []
100
99
 
101
100
  rubyforge_project:
102
- rubygems_version: 1.3.5
101
+ rubygems_version: 1.2.0
103
102
  signing_key:
104
103
  specification_version: 2
105
104
  summary: Ruby driver for the 10gen Mongo DB