mongomatic 0.3.1 → 0.3.2
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/README.rdoc +6 -0
- data/lib/mongomatic/base.rb +5 -0
- data/lib/mongomatic/cursor.rb +5 -0
- data/test/test_mongomatic.rb +16 -0
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -26,6 +26,9 @@ Mongomatic allows you to map your Ruby objects to Mongo documents. It is designe
|
|
26
26
|
# or you can set it for a specific model:
|
27
27
|
User.db = Mongo::Connection.new.db("mongomatic_test_user")
|
28
28
|
|
29
|
+
User.empty?
|
30
|
+
=> true
|
31
|
+
|
29
32
|
u = User.new(:name => "Ben")
|
30
33
|
=> #<User:0x00000100d0cbf8 @doc={"name"=>"Ben"}, @removed=false>
|
31
34
|
u.valid?
|
@@ -35,6 +38,9 @@ Mongomatic allows you to map your Ruby objects to Mongo documents. It is designe
|
|
35
38
|
=> true
|
36
39
|
u.insert
|
37
40
|
=> BSON::ObjectID('4c32834f0218236321000001')
|
41
|
+
|
42
|
+
User.empty?
|
43
|
+
=> false
|
38
44
|
|
39
45
|
u["name"] = "Ben Myles"
|
40
46
|
=> "Ben Myles"
|
data/lib/mongomatic/base.rb
CHANGED
@@ -52,6 +52,11 @@ module Mongomatic
|
|
52
52
|
find.limit(1).next_document
|
53
53
|
end
|
54
54
|
|
55
|
+
# Is the collection empty? This method is much more efficient than doing Collection.count == 0
|
56
|
+
def empty?
|
57
|
+
find.limit(1).has_next? == false
|
58
|
+
end
|
59
|
+
|
55
60
|
# Return the number of documents in the collection
|
56
61
|
def count
|
57
62
|
find.count
|
data/lib/mongomatic/cursor.rb
CHANGED
@@ -25,6 +25,11 @@ module Mongomatic
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
# Is the cursor empty? This method is much more efficient than doing cursor.count == 0
|
29
|
+
def empty?
|
30
|
+
@mongo_cursor.has_next? == false
|
31
|
+
end
|
32
|
+
|
28
33
|
def next_document
|
29
34
|
if doc = @mongo_cursor.next_document
|
30
35
|
@obj_class.new(doc, false)
|
data/test/test_mongomatic.rb
CHANGED
@@ -17,6 +17,22 @@ class TestMongomatic < Test::Unit::TestCase
|
|
17
17
|
assert_equal p1, Person.find_one(p1['_id'])
|
18
18
|
end
|
19
19
|
|
20
|
+
should "accurately return whether the cursor is or is not empty" do
|
21
|
+
Person.collection.drop
|
22
|
+
assert Person.empty?
|
23
|
+
assert Person.find.empty?
|
24
|
+
p1 = Person.new(:name => "Jordan")
|
25
|
+
p1.insert
|
26
|
+
assert !Person.empty?
|
27
|
+
assert !Person.find.empty?
|
28
|
+
assert !Person.find({"name" => "Jordan"}).empty?
|
29
|
+
assert Person.find({"name" => "Ben"}).empty?
|
30
|
+
p1.remove!
|
31
|
+
assert Person.empty?
|
32
|
+
assert Person.find.empty?
|
33
|
+
assert Person.find({"name" => "Jordan"}).empty?
|
34
|
+
end
|
35
|
+
|
20
36
|
should "find one with ObjectID or hash only" do
|
21
37
|
Person.collection.drop
|
22
38
|
Person.create_indexes
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 2
|
9
|
+
version: 0.3.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Ben Myles
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-08-
|
17
|
+
date: 2010-08-19 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|