mongoid 0.3.2 → 0.3.3

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/.watchr ADDED
@@ -0,0 +1,11 @@
1
+ def run(cmd)
2
+ puts cmd
3
+ system cmd
4
+ end
5
+
6
+ def spec(file)
7
+ run "spec -O spec/spec.opts #{file}"
8
+ end
9
+
10
+ watch("spec/.*/*_spec\.rb") {|md| p md[0]; spec(md[0]) }
11
+ watch('lib/.*/(.*)\.rb') {|md| p md[1]; spec("spec/unit/mongoid/#{md[1]}_spec.rb") }
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.3.3
@@ -21,9 +21,9 @@
21
21
  require "rubygems"
22
22
 
23
23
  gem "activesupport", "2.3.4"
24
- gem "mongodb-mongo", "0.14.1"
24
+ gem "mongo", "0.15.1"
25
25
  gem "durran-validatable", "1.7.5"
26
- gem "mislav-will_paginate", "2.3.11"
26
+ gem "will_paginate", "2.3.11"
27
27
 
28
28
  require "validatable"
29
29
  require "active_support/callbacks"
@@ -32,6 +32,7 @@ require "delegate"
32
32
  require "will_paginate/collection"
33
33
  require "mongo"
34
34
  require "mongoid/associations"
35
+ require "mongoid/criteria"
35
36
  require "mongoid/extensions"
36
37
  require "mongoid/document"
37
38
 
@@ -0,0 +1,90 @@
1
+ module Mongoid #:nodoc:
2
+ class Criteria #:nodoc:
3
+ attr_reader :selector, :options, :type
4
+
5
+ # Supply a hash of arrays for field values that must match every single
6
+ # element in the array.
7
+ def all(selections = {})
8
+ selections.each { |key, value| @selector[key] = { "$all" => value } }; self
9
+ end
10
+
11
+ # Excludes the parameters passed using $ne in the selector.
12
+ def excludes(exclusions = {})
13
+ exclusions.each { |key, value| @selector[key] = { "$ne" => value } }; self
14
+ end
15
+
16
+ # Execute the criteria, which will retrieve the results from
17
+ # the collection.
18
+ def execute(collection, klass)
19
+ return klass.new(collection.find_one(@selector, @options)) if type == :first
20
+ return collection.find(@selector, @options).collect { |doc| klass.new(doc) }
21
+ end
22
+
23
+ # Defines criteria for matching any of the supplied parameters, similar to
24
+ # a SQL in statement.
25
+ def in(inclusions = {})
26
+ inclusions.each { |key, value| @selector[key] = { "$in" => value } }; self
27
+ end
28
+
29
+ # Adds an _id criteria to the selector.
30
+ def id(object_id)
31
+ @selector[:_id] = Mongo::ObjectID.from_string(object_id); self
32
+ end
33
+
34
+ # Create the new Criteria object. Does not take any params, just
35
+ # initializes the selector and options hashes that will be
36
+ # eventually passed to the driver.
37
+ def initialize(type)
38
+ @selector, @options, @type = {}, {}, type
39
+ end
40
+
41
+ # Limits the number of results returned by the query, usually used in
42
+ # conjunction with skip() for pagination.
43
+ def limit(value = 20)
44
+ @options[:limit] = value; self
45
+ end
46
+
47
+ # The conditions that must prove true on each record in the
48
+ # database in order for them to be a part of the result set.
49
+ # This is a hash that maps to a selector in the driver.
50
+ def select(selector = {})
51
+ @selector = selector; self
52
+ end
53
+
54
+ # Defines a clause that the criteria should ignore.
55
+ def not_in(exclusions)
56
+ exclusions.each { |key, value| @selector[key] = { "$nin" => value } }; self
57
+ end
58
+
59
+ # Define extras for the criteria.
60
+ def extras(extras)
61
+ @options = extras; self
62
+ end
63
+
64
+ # Specifies how to sort this Criteria. Current valid params
65
+ # are: { :field => 1 } or { :field => -1 }
66
+ def order_by(params = {})
67
+ @options[:sort] = params; self
68
+ end
69
+
70
+ # Specify what fields to be returned from the database.
71
+ # Similar to a SQL select field1, field2, field3
72
+ def only(*args)
73
+ @options[:fields] = args.flatten; self
74
+ end
75
+
76
+ # Skips the supplied number of records, as offset behaves in traditional
77
+ # pagination.
78
+ def skip(value = 0)
79
+ @options[:skip] = value; self
80
+ end
81
+
82
+ # Translate the supplied arguments into a criteria object.
83
+ def self.translate(*args)
84
+ type, params = args[0], args[1] || {}
85
+ return new(:first).id(type.to_s) if type.is_a?(String)
86
+ return new(type).select(params.delete(:conditions)).extras(params)
87
+ end
88
+
89
+ end
90
+ end
@@ -45,44 +45,35 @@ module Mongoid #:nodoc:
45
45
  collection.drop
46
46
  end
47
47
 
48
+ # Defines all the fields that are accessable on the Document
49
+ # For each field that is defined, a getter and setter will be
50
+ # added as an instance method to the Document.
51
+ def fields(*names)
52
+ @fields ||= []
53
+ names.flatten.each do |name|
54
+ @fields << name
55
+ define_method(name) { read_attribute(name) }
56
+ define_method("#{name}=") { |value| write_attribute(name, value) }
57
+ end
58
+ end
59
+
48
60
  # Find all Documents in several ways.
49
61
  # Model.find(:first, :attribute => "value")
50
62
  # Model.find(:all, :attribute => "value")
51
63
  def find(*args)
52
- type, params = args[0], args[1]
53
- case type
54
- when :all then find_all(params)
55
- when :first then find_first(params)
56
- else find_first(Mongo::ObjectID.from_string(type.to_s))
57
- end
64
+ Criteria.translate(*args).execute(collection, self)
58
65
  end
59
66
 
60
67
  # Find a single Document given the passed selector, which is a Hash of attributes that
61
68
  # must match the Document in the database exactly.
62
- def find_first(params = {})
63
- case params
64
- when Hash then new(collection.find_one(params[:conditions]))
65
- else new(collection.find_one(params))
66
- end
69
+ def first(*args)
70
+ find(:first, *args)
67
71
  end
68
72
 
69
73
  # Find all Documents given the passed selector, which is a Hash of attributes that
70
74
  # must match the Document in the database exactly.
71
- def find_all(params = {})
72
- selector = params.delete(:conditions)
73
- collection.find(selector, params).collect { |doc| new(doc) }
74
- end
75
-
76
- # Defines all the fields that are accessable on the Document
77
- # For each field that is defined, a getter and setter will be
78
- # added as an instance method to the Document.
79
- def fields(*names)
80
- @fields ||= []
81
- names.flatten.each do |name|
82
- @fields << name
83
- define_method(name) { read_attribute(name) }
84
- define_method("#{name}=") { |value| write_attribute(name, value) }
85
- end
75
+ def all(*args)
76
+ find(:all, *args)
86
77
  end
87
78
 
88
79
  # Find all Documents given the supplied criteria, grouped by the fields
@@ -109,7 +100,10 @@ module Mongoid #:nodoc:
109
100
  def has_timestamps
110
101
  fields :created_at, :last_modified
111
102
  class_eval do
112
- before_save :update_timestamps
103
+ before_create \
104
+ :update_created_at,
105
+ :update_last_modified
106
+ before_save :update_last_modified
113
107
  end
114
108
  end
115
109
 
@@ -178,12 +172,13 @@ module Mongoid #:nodoc:
178
172
  if @parent
179
173
  @parent.save
180
174
  else
175
+ return false unless valid?
181
176
  run_callbacks(:before_create) if creating
182
177
  run_callbacks(:before_save)
183
178
  collection.save(@attributes)
184
179
  run_callbacks(:after_create) if creating
185
180
  run_callbacks(:after_save)
186
- return self
181
+ creating ? self : true
187
182
  end
188
183
  end
189
184
 
@@ -219,9 +214,15 @@ module Mongoid #:nodoc:
219
214
  @attributes[name.to_sym]
220
215
  end
221
216
 
222
- # Update the timestamps on this document.
223
- def update_timestamps
217
+ # Update the created_at field on the Document to the current time. This is
218
+ # only called on create.
219
+ def update_created_at
224
220
  self.created_at = Time.now
221
+ end
222
+
223
+ # Update the last_modified field on the Document to the current time.
224
+ # This is only called on create and on save.
225
+ def update_last_modified
225
226
  self.last_modified = Time.now
226
227
  end
227
228
 
@@ -5,17 +5,18 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mongoid}
8
- s.version = "0.3.2"
8
+ s.version = "0.3.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Durran Jordan"]
12
- s.date = %q{2009-10-03}
12
+ s.date = %q{2009-10-09}
13
13
  s.email = %q{durran@gmail.com}
14
14
  s.extra_rdoc_files = [
15
15
  "README.textile"
16
16
  ]
17
17
  s.files = [
18
18
  ".gitignore",
19
+ ".watchr",
19
20
  "MIT_LICENSE",
20
21
  "README.textile",
21
22
  "Rakefile",
@@ -27,6 +28,7 @@ Gem::Specification.new do |s|
27
28
  "lib/mongoid/associations/factory.rb",
28
29
  "lib/mongoid/associations/has_many_association.rb",
29
30
  "lib/mongoid/associations/has_one_association.rb",
31
+ "lib/mongoid/criteria.rb",
30
32
  "lib/mongoid/document.rb",
31
33
  "lib/mongoid/extensions.rb",
32
34
  "lib/mongoid/extensions/array/conversions.rb",
@@ -40,6 +42,7 @@ Gem::Specification.new do |s|
40
42
  "spec/unit/mongoid/associations/factory_spec.rb",
41
43
  "spec/unit/mongoid/associations/has_many_association_spec.rb",
42
44
  "spec/unit/mongoid/associations/has_one_association_spec.rb",
45
+ "spec/unit/mongoid/criteria_spec.rb",
43
46
  "spec/unit/mongoid/document_spec.rb",
44
47
  "spec/unit/mongoid/extensions/array/conversions_spec.rb",
45
48
  "spec/unit/mongoid/extensions/object/conversions_spec.rb"
@@ -57,6 +60,7 @@ Gem::Specification.new do |s|
57
60
  "spec/unit/mongoid/associations/factory_spec.rb",
58
61
  "spec/unit/mongoid/associations/has_many_association_spec.rb",
59
62
  "spec/unit/mongoid/associations/has_one_association_spec.rb",
63
+ "spec/unit/mongoid/criteria_spec.rb",
60
64
  "spec/unit/mongoid/document_spec.rb",
61
65
  "spec/unit/mongoid/extensions/array/conversions_spec.rb",
62
66
  "spec/unit/mongoid/extensions/object/conversions_spec.rb"
@@ -43,7 +43,7 @@ describe Mongoid::Document do
43
43
  context "finding first document" do
44
44
 
45
45
  it "returns the first document based on the selector provided" do
46
- person = Person.find(:first, :title => "Test")
46
+ person = Person.find(:first, :conditions => { :title => "Test" })
47
47
  person.title.should == "Test"
48
48
  end
49
49
 
@@ -52,7 +52,7 @@ describe Mongoid::Document do
52
52
  context "finding by id" do
53
53
 
54
54
  it "finds the document by the supplied id" do
55
- person = Person.find(@person.id)
55
+ person = Person.find(@person.id.to_s)
56
56
  person.id.should == @person.id
57
57
  end
58
58
 
@@ -12,7 +12,6 @@ Mongoid.connect_to("mongoid_test")
12
12
 
13
13
  Spec::Runner.configure do |config|
14
14
  config.mock_with :mocha
15
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
16
15
  end
17
16
 
18
17
  class Person < Mongoid::Document
@@ -0,0 +1,289 @@
1
+ require File.join(File.dirname(__FILE__), "/../../spec_helper.rb")
2
+
3
+ describe Mongoid::Criteria do
4
+
5
+ before do
6
+ @criteria = Mongoid::Criteria.new(:all)
7
+ end
8
+
9
+ describe "#all" do
10
+
11
+ it "adds the $all query to the selector" do
12
+ @criteria.all(:title => ["title1", "title2"])
13
+ @criteria.selector.should == { :title => { "$all" => ["title1", "title2"] } }
14
+ end
15
+
16
+ it "returns self" do
17
+ @criteria.all(:title => [ "title1" ]).should == @criteria
18
+ end
19
+
20
+ end
21
+
22
+ describe "#excludes" do
23
+
24
+ it "adds the $ne query to the selector" do
25
+ @criteria.excludes(:title => "Bad Title", :text => "Bad Text")
26
+ @criteria.selector.should == { :title => { "$ne" => "Bad Title"}, :text => { "$ne" => "Bad Text" } }
27
+ end
28
+
29
+ it "returns self" do
30
+ @criteria.excludes(:title => "Bad").should == @criteria
31
+ end
32
+
33
+ end
34
+
35
+ describe "#execute" do
36
+
37
+ context "when type is :first" do
38
+
39
+ it "calls find on the collection with the selector and options" do
40
+ criteria = Mongoid::Criteria.new(:first)
41
+ collection = mock
42
+ collection.expects(:find_one).with(@criteria.selector, @criteria.options).returns({})
43
+ criteria.execute(collection, Person).should be_a_kind_of(Person)
44
+ end
45
+
46
+ end
47
+
48
+ context "when type is not :first" do
49
+
50
+ it "calls find on the collection with the selector and options" do
51
+ criteria = Mongoid::Criteria.new(:all)
52
+ collection = mock
53
+ collection.expects(:find).with(@criteria.selector, @criteria.options).returns([])
54
+ criteria.execute(collection, Person).should == []
55
+ end
56
+
57
+ end
58
+
59
+ end
60
+
61
+ describe "#extras" do
62
+
63
+ it "adds the extras to the options" do
64
+ @criteria.extras({ :skip => 10 })
65
+ @criteria.options.should == { :skip => 10 }
66
+ end
67
+
68
+ it "returns self" do
69
+ @criteria.extras({}).should == @criteria
70
+ end
71
+
72
+ end
73
+
74
+ describe "#id" do
75
+
76
+ it "adds the _id query to the selector" do
77
+ id = Mongo::ObjectID.new
78
+ @criteria.id(id.to_s)
79
+ @criteria.selector.should == { :_id => id }
80
+ end
81
+
82
+ it "returns self" do
83
+ id = Mongo::ObjectID.new
84
+ @criteria.id(id.to_s).should == @criteria
85
+ end
86
+
87
+ end
88
+
89
+ describe "#in" do
90
+
91
+ it "adds the $in clause to the selector" do
92
+ @criteria.in(:title => ["title1", "title2"], :text => ["test"])
93
+ @criteria.selector.should == { :title => { "$in" => ["title1", "title2"] }, :text => { "$in" => ["test"] } }
94
+ end
95
+
96
+ it "returns self" do
97
+ @criteria.in(:title => ["title1"]).should == @criteria
98
+ end
99
+
100
+ end
101
+
102
+ describe "#limit" do
103
+
104
+ context "when value provided" do
105
+
106
+ it "adds the limit to the options" do
107
+ @criteria.limit(100)
108
+ @criteria.options.should == { :limit => 100 }
109
+ end
110
+
111
+ end
112
+
113
+ context "when value not provided" do
114
+
115
+ it "defaults to 20" do
116
+ @criteria.limit
117
+ @criteria.options.should == { :limit => 20 }
118
+ end
119
+
120
+ end
121
+
122
+ it "returns self" do
123
+ @criteria.limit.should == @criteria
124
+ end
125
+
126
+ end
127
+
128
+ describe "#select" do
129
+
130
+ it "adds the clause to the selector" do
131
+ @criteria.select(:title => "Title", :text => "Text")
132
+ @criteria.selector.should == { :title => "Title", :text => "Text" }
133
+ end
134
+
135
+ it "returns self" do
136
+ @criteria.select.should == @criteria
137
+ end
138
+
139
+ end
140
+
141
+ describe "#not_in" do
142
+
143
+ it "adds the exclusion to the selector" do
144
+ @criteria.not_in(:title => ["title1", "title2"], :text => ["test"])
145
+ @criteria.selector.should == { :title => { "$nin" => ["title1", "title2"] }, :text => { "$nin" => ["test"] } }
146
+ end
147
+
148
+ it "returns self" do
149
+ @criteria.not_in(:title => ["title1"]).should == @criteria
150
+ end
151
+
152
+ end
153
+
154
+ describe "#order_by" do
155
+
156
+ context "when field names and direction specified" do
157
+
158
+ it "adds the sort to the options" do
159
+ @criteria.order_by(:title => 1, :text => -1)
160
+ @criteria.options.should == { :sort => { :title => 1, :text => -1 }}
161
+ end
162
+
163
+ end
164
+
165
+ it "returns self" do
166
+ @criteria.order_by.should == @criteria
167
+ end
168
+
169
+ end
170
+
171
+ describe "#only" do
172
+
173
+ it "adds the options for limiting by fields" do
174
+ @criteria.only(:title, :text)
175
+ @criteria.options.should == { :fields => [ :title, :text ] }
176
+ end
177
+
178
+ it "returns self" do
179
+ @criteria.only.should == @criteria
180
+ end
181
+
182
+ end
183
+
184
+ describe "#skip" do
185
+
186
+ context "when value provided" do
187
+
188
+ it "adds the skip value to the options" do
189
+ @criteria.skip(20)
190
+ @criteria.options.should == { :skip => 20 }
191
+ end
192
+
193
+ end
194
+
195
+ context "when value not provided" do
196
+
197
+ it "defaults to zero" do
198
+ @criteria.skip
199
+ @criteria.options.should == { :skip => 0 }
200
+ end
201
+
202
+ end
203
+
204
+ it "returns self" do
205
+ @criteria.skip.should == @criteria
206
+ end
207
+
208
+ end
209
+
210
+ describe "#translate" do
211
+
212
+ context "single argument as a string" do
213
+
214
+ it "creates a new select criteria" do
215
+ id = Mongo::ObjectID.new
216
+ criteria = Mongoid::Criteria.translate(id.to_s)
217
+ criteria.selector.should == { :_id => id }
218
+ end
219
+
220
+ end
221
+
222
+ context "multiple arguments" do
223
+
224
+ context "when :first, :conditions => {}" do
225
+
226
+ before do
227
+ @criteria = Mongoid::Criteria.translate(:first, :conditions => { :title => "Test" })
228
+ end
229
+
230
+ it "returns a criteria with a selector from the conditions" do
231
+ @criteria.selector.should == { :title => "Test" }
232
+ end
233
+
234
+ it "returns a criteria with type :first" do
235
+ @criteria.type.should == :first
236
+ end
237
+
238
+ end
239
+
240
+ context "when :all, :conditions => {}" do
241
+
242
+ before do
243
+ @criteria = Mongoid::Criteria.translate(:all, :conditions => { :title => "Test" })
244
+ end
245
+
246
+ it "returns a criteria with a selector from the conditions" do
247
+ @criteria.selector.should == { :title => "Test" }
248
+ end
249
+
250
+ it "returns a criteria with type :all" do
251
+ @criteria.type.should == :all
252
+ end
253
+
254
+ end
255
+
256
+ context "when :last, :conditions => {}" do
257
+
258
+ before do
259
+ @criteria = Mongoid::Criteria.translate(:last, :conditions => { :title => "Test" })
260
+ end
261
+
262
+ it "returns a criteria with a selector from the conditions" do
263
+ @criteria.selector.should == { :title => "Test" }
264
+ end
265
+
266
+ it "returns a criteria with type :last" do
267
+ @criteria.type.should == :last
268
+ end
269
+
270
+ end
271
+
272
+ context "when options are provided" do
273
+
274
+ before do
275
+ @criteria = Mongoid::Criteria.translate(:last, :conditions => { :title => "Test" }, :skip => 10)
276
+ end
277
+
278
+ it "adds the criteria and the options" do
279
+ @criteria.selector.should == { :title => "Test" }
280
+ @criteria.options.should == { :skip => 10 }
281
+ end
282
+
283
+ end
284
+
285
+ end
286
+
287
+ end
288
+
289
+ end
@@ -3,13 +3,15 @@ require File.join(File.dirname(__FILE__), "/../../spec_helper.rb")
3
3
  describe Mongoid::Document do
4
4
 
5
5
  before do
6
- @collection = mock
6
+ @collection = stub(:name => "people")
7
7
  @database = stub(:collection => @collection)
8
8
  Mongoid.stubs(:database).returns(@database)
9
9
  end
10
10
 
11
11
  after do
12
12
  Person.instance_variable_set(:@collection, nil)
13
+ @database = nil
14
+ @collection = nil
13
15
  end
14
16
 
15
17
  describe "#aggregate" do
@@ -43,9 +45,12 @@ describe Mongoid::Document do
43
45
 
44
46
  describe "#collection" do
45
47
 
48
+ before do
49
+ @person = Person.new
50
+ end
51
+
46
52
  it "sets the collection name to the class pluralized" do
47
- @database.expects(:collection).with("people").returns(@collection)
48
- Person.collection
53
+ Person.collection.name.should == "people"
49
54
  end
50
55
 
51
56
  end
@@ -121,6 +126,7 @@ describe Mongoid::Document do
121
126
 
122
127
  before do
123
128
  @attributes = { :document_class => "Person" }
129
+ @criteria = mock
124
130
  end
125
131
 
126
132
  context "when an id is passed in" do
@@ -129,8 +135,9 @@ describe Mongoid::Document do
129
135
  @id = Mongo::ObjectID.new
130
136
  end
131
137
 
132
- it "delegates to find_first" do
133
- @collection.expects(:find_one).with(Mongo::ObjectID.from_string(@id.to_s)).returns(@attributes)
138
+ it "delegates to criteria" do
139
+ Mongoid::Criteria.expects(:translate).with(@id.to_s).returns(@criteria)
140
+ @criteria.expects(:execute).with(@collection, Person).returns(@attributes)
134
141
  Person.find(@id.to_s)
135
142
  end
136
143
 
@@ -138,8 +145,9 @@ describe Mongoid::Document do
138
145
 
139
146
  context "when finding first" do
140
147
 
141
- it "delegates to find_first" do
142
- @collection.expects(:find_one).with(:test => "Test" ).returns(@attributes)
148
+ it "delegates to criteria" do
149
+ Mongoid::Criteria.expects(:translate).with(:first, :conditions => { :test => "Test" }).returns(@criteria)
150
+ @criteria.expects(:execute).with(@collection, Person).returns(@attributes)
143
151
  Person.find(:first, :conditions => { :test => "Test" })
144
152
  end
145
153
 
@@ -176,7 +184,7 @@ describe Mongoid::Document do
176
184
 
177
185
  end
178
186
 
179
- describe "#find_first" do
187
+ describe "#first" do
180
188
 
181
189
  before do
182
190
  @attributes = { :document_class => "Person" }
@@ -185,8 +193,8 @@ describe Mongoid::Document do
185
193
  context "when a selector is provided" do
186
194
 
187
195
  it "finds the first document from the collection and instantiates it" do
188
- @collection.expects(:find_one).with(:test => "Test").returns(@attributes)
189
- Person.find_first(:conditions => {:test => "Test"}).attributes.should == @attributes
196
+ @collection.expects(:find_one).with({ :test => "Test" }, {}).returns(@attributes)
197
+ Person.first(:conditions => {:test => "Test"}).attributes.should == @attributes
190
198
  end
191
199
 
192
200
  end
@@ -194,15 +202,15 @@ describe Mongoid::Document do
194
202
  context "when a selector is not provided" do
195
203
 
196
204
  it "finds the first document from the collection and instantiates it" do
197
- @collection.expects(:find_one).with(nil).returns(@attributes)
198
- Person.find_first.attributes.should == @attributes
205
+ @collection.expects(:find_one).with(nil, {}).returns(@attributes)
206
+ Person.first.attributes.should == @attributes
199
207
  end
200
208
 
201
209
  end
202
210
 
203
211
  end
204
212
 
205
- describe "#find_all" do
213
+ describe "#all" do
206
214
 
207
215
  before do
208
216
  @cursor = mock
@@ -214,7 +222,7 @@ describe Mongoid::Document do
214
222
  it "finds from the collection and instantiate objects for each returned" do
215
223
  @collection.expects(:find).with({ :test => "Test" }, {}).returns(@cursor)
216
224
  @cursor.expects(:collect).returns(@people)
217
- Person.find_all(:conditions => {:test => "Test"})
225
+ Person.all(:conditions => {:test => "Test"})
218
226
  end
219
227
 
220
228
  end
@@ -224,7 +232,7 @@ describe Mongoid::Document do
224
232
  it "finds from the collection and instantiate objects for each returned" do
225
233
  @collection.expects(:find).with(nil, {}).returns(@cursor)
226
234
  @cursor.expects(:collect).returns(@people)
227
- Person.find_all
235
+ Person.all
228
236
  end
229
237
 
230
238
  end
@@ -326,10 +334,7 @@ describe Mongoid::Document do
326
334
  end
327
335
 
328
336
  it "adds created_on and last_modified to the document" do
329
- @collection.expects(:save).with(@tester.attributes)
330
- @tester.save
331
- @tester.created_at.should_not be_nil
332
- @tester.last_modified.should_not be_nil
337
+ Tester.instance_variable_get(:@fields).should include(:created_at, :last_modified)
333
338
  end
334
339
 
335
340
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Durran Jordan
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-03 00:00:00 -04:00
12
+ date: 2009-10-09 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -62,6 +62,7 @@ extra_rdoc_files:
62
62
  - README.textile
63
63
  files:
64
64
  - .gitignore
65
+ - .watchr
65
66
  - MIT_LICENSE
66
67
  - README.textile
67
68
  - Rakefile
@@ -73,6 +74,7 @@ files:
73
74
  - lib/mongoid/associations/factory.rb
74
75
  - lib/mongoid/associations/has_many_association.rb
75
76
  - lib/mongoid/associations/has_one_association.rb
77
+ - lib/mongoid/criteria.rb
76
78
  - lib/mongoid/document.rb
77
79
  - lib/mongoid/extensions.rb
78
80
  - lib/mongoid/extensions/array/conversions.rb
@@ -86,6 +88,7 @@ files:
86
88
  - spec/unit/mongoid/associations/factory_spec.rb
87
89
  - spec/unit/mongoid/associations/has_many_association_spec.rb
88
90
  - spec/unit/mongoid/associations/has_one_association_spec.rb
91
+ - spec/unit/mongoid/criteria_spec.rb
89
92
  - spec/unit/mongoid/document_spec.rb
90
93
  - spec/unit/mongoid/extensions/array/conversions_spec.rb
91
94
  - spec/unit/mongoid/extensions/object/conversions_spec.rb
@@ -125,6 +128,7 @@ test_files:
125
128
  - spec/unit/mongoid/associations/factory_spec.rb
126
129
  - spec/unit/mongoid/associations/has_many_association_spec.rb
127
130
  - spec/unit/mongoid/associations/has_one_association_spec.rb
131
+ - spec/unit/mongoid/criteria_spec.rb
128
132
  - spec/unit/mongoid/document_spec.rb
129
133
  - spec/unit/mongoid/extensions/array/conversions_spec.rb
130
134
  - spec/unit/mongoid/extensions/object/conversions_spec.rb