mongomatic 0.0.8 → 0.0.9

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/lib/mongomatic.rb CHANGED
@@ -1,6 +1,6 @@
1
- gem "bson", "= 1.0.3"
2
- gem "bson_ext", "= 1.0.1"
3
- gem "mongo", "= 1.0.3"
1
+ gem "bson", ">= 1.0.3"
2
+ gem "bson_ext", ">= 1.0.1"
3
+ gem "mongo", ">= 1.0.3"
4
4
  gem "activesupport", ">= 2.3.5"
5
5
 
6
6
  require "bson"
@@ -33,6 +33,12 @@ module Mongomatic
33
33
  Mongomatic::Cursor.new(self, collection.find(query, opts))
34
34
  end
35
35
 
36
+ def find_one(query = nil, opts = {})
37
+ query = BSON::ObjectID(query) if query.is_a? String
38
+ return nil unless doc = self.collection.find_one(query, opts)
39
+ self.new(doc)
40
+ end
41
+
36
42
  def all
37
43
  find
38
44
  end
@@ -1,6 +1,34 @@
1
1
  require 'helper'
2
2
 
3
3
  class TestMongomatic < Test::Unit::TestCase
4
+ should "find one with a query" do
5
+ Person.collection.remove
6
+ p1 = Person.new(:name => "Jordan")
7
+ p1.insert
8
+
9
+ assert_equal p1, Person.find_one(:name => "Jordan")
10
+ end
11
+ should "find one with an instance of BSON::ObjectID" do
12
+ Person.collection.remove
13
+ p1 = Person.new(:name => "Jordan")
14
+ p1.insert
15
+
16
+ assert_equal p1, Person.find_one(p1['_id'])
17
+ end
18
+ should "find one with a string" do
19
+ Person.collection.remove
20
+ p1 = Person.new(:name => "Jordan")
21
+ p1.insert
22
+
23
+ assert_equal p1, Person.find_one(p1['_id'].to_s)
24
+ end
25
+ should "return an instance of class when finding one" do
26
+ Person.collection.remove
27
+ p1 = Person.new(:name => "Jordan")
28
+ p1.insert
29
+
30
+ assert_equal Person, Person.find_one(:name => "Jordan").class
31
+ end
4
32
  should "work with enumerable methods" do
5
33
  Person.collection.remove
6
34
  p1 = Person.new(:name => "Ben1", :birth_year => 1984, :created_at => Time.now.utc, :admin => true)
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 8
9
- version: 0.0.8
8
+ - 9
9
+ version: 0.0.9
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ben Myles
@@ -14,14 +14,13 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-08-06 00:00:00 -07:00
17
+ date: 2010-08-11 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: shoulda
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
24
  requirements:
26
25
  - - ">="
27
26
  - !ruby/object:Gem::Version
@@ -36,9 +35,8 @@ dependencies:
36
35
  name: bson
37
36
  prerelease: false
38
37
  requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
38
  requirements:
41
- - - "="
39
+ - - ">="
42
40
  - !ruby/object:Gem::Version
43
41
  segments:
44
42
  - 1
@@ -51,9 +49,8 @@ dependencies:
51
49
  name: bson_ext
52
50
  prerelease: false
53
51
  requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
52
  requirements:
56
- - - "="
53
+ - - ">="
57
54
  - !ruby/object:Gem::Version
58
55
  segments:
59
56
  - 1
@@ -66,9 +63,8 @@ dependencies:
66
63
  name: mongo
67
64
  prerelease: false
68
65
  requirement: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
66
  requirements:
71
- - - "="
67
+ - - ">="
72
68
  - !ruby/object:Gem::Version
73
69
  segments:
74
70
  - 1
@@ -81,7 +77,6 @@ dependencies:
81
77
  name: activesupport
82
78
  prerelease: false
83
79
  requirement: &id005 !ruby/object:Gem::Requirement
84
- none: false
85
80
  requirements:
86
81
  - - ">="
87
82
  - !ruby/object:Gem::Version
@@ -130,8 +125,6 @@ files:
130
125
  - lib/mongomatic/validatable/validations/validation_base.rb
131
126
  - LICENSE
132
127
  - README.rdoc
133
- - test/helper.rb
134
- - test/test_mongomatic.rb
135
128
  has_rdoc: true
136
129
  homepage: http://github.com/benmyles/mongomatic
137
130
  licenses: []
@@ -142,7 +135,6 @@ rdoc_options:
142
135
  require_paths:
143
136
  - lib
144
137
  required_ruby_version: !ruby/object:Gem::Requirement
145
- none: false
146
138
  requirements:
147
139
  - - ">="
148
140
  - !ruby/object:Gem::Version
@@ -150,7 +142,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
150
142
  - 0
151
143
  version: "0"
152
144
  required_rubygems_version: !ruby/object:Gem::Requirement
153
- none: false
154
145
  requirements:
155
146
  - - ">="
156
147
  - !ruby/object:Gem::Version
@@ -160,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
151
  requirements: []
161
152
 
162
153
  rubyforge_project:
163
- rubygems_version: 1.3.7
154
+ rubygems_version: 1.3.6
164
155
  signing_key:
165
156
  specification_version: 3
166
157
  summary: Mongomatic is a simple Ruby object mapper for Mongo