mongoid 0.10.4 → 0.10.5
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/HISTORY +8 -1
- data/VERSION +1 -1
- data/lib/mongoid/commands.rb +5 -4
- data/lib/mongoid/commands/create.rb +2 -2
- data/lib/mongoid/commands/delete.rb +2 -1
- data/lib/mongoid/commands/deletion.rb +12 -0
- data/lib/mongoid/commands/destroy.rb +2 -1
- data/lib/mongoid/commands/save.rb +2 -2
- data/lib/mongoid/document.rb +9 -0
- data/lib/mongoid/extensions/hash/accessors.rb +15 -0
- data/mongoid.gemspec +2 -1
- data/spec/integration/mongoid/document_spec.rb +24 -0
- data/spec/unit/mongoid/commands/create_spec.rb +3 -3
- data/spec/unit/mongoid/commands/delete_spec.rb +17 -1
- data/spec/unit/mongoid/commands/destroy_spec.rb +18 -1
- data/spec/unit/mongoid/commands/save_spec.rb +12 -0
- data/spec/unit/mongoid/commands_spec.rb +24 -11
- data/spec/unit/mongoid/document_spec.rb +34 -0
- data/spec/unit/mongoid/extensions/hash/accessors_spec.rb +64 -18
- metadata +2 -1
data/HISTORY
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
=== 0.10.5
|
2
|
+
|
3
|
+
- Documents that are embedded not properly respond to
|
4
|
+
Document#destroy and Document#delete.
|
5
|
+
|
6
|
+
- Documents can now be saved sans validation with
|
7
|
+
Document#save(false)
|
8
|
+
|
1
9
|
=== 0.10.4
|
2
10
|
|
3
11
|
- Documents no longer inherit from Mongoid::Document.
|
@@ -15,4 +23,3 @@
|
|
15
23
|
now set the name of the database collection to persist to.
|
16
24
|
|
17
25
|
- Mongoid::Criteria#select becomes Mongoid::Criteria#only
|
18
|
-
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.10.
|
1
|
+
0.10.5
|
data/lib/mongoid/commands.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require "mongoid/commands/create"
|
3
|
+
require "mongoid/commands/deletion"
|
3
4
|
require "mongoid/commands/delete"
|
4
5
|
require "mongoid/commands/delete_all"
|
5
6
|
require "mongoid/commands/destroy"
|
@@ -46,17 +47,17 @@ module Mongoid #:nodoc:
|
|
46
47
|
end
|
47
48
|
|
48
49
|
# Save the +Document+. Delegates to the Save command.
|
49
|
-
def save
|
50
|
-
new_record? ? Create.execute(self) : Save.execute(self)
|
50
|
+
def save(validate = true)
|
51
|
+
new_record? ? Create.execute(self, validate) : Save.execute(self, validate)
|
51
52
|
end
|
52
53
|
|
53
54
|
# Save the +Document+. Delegates to the Save command. If the command
|
54
55
|
# returns false then a +ValidationError+ will be raised.
|
55
56
|
def save!
|
56
57
|
if new_record?
|
57
|
-
return Create.execute(self) || (raise Errors::Validations.new(self.errors))
|
58
|
+
return Create.execute(self, true) || (raise Errors::Validations.new(self.errors))
|
58
59
|
else
|
59
|
-
return Save.execute(self) || (raise Errors::Validations.new(self.errors))
|
60
|
+
return Save.execute(self, true) || (raise Errors::Validations.new(self.errors))
|
60
61
|
end
|
61
62
|
end
|
62
63
|
|
@@ -10,9 +10,9 @@ module Mongoid #:nodoc:
|
|
10
10
|
# doc: A new +Document+ that is going to be persisted.
|
11
11
|
#
|
12
12
|
# Returns: +Document+.
|
13
|
-
def self.execute(doc)
|
13
|
+
def self.execute(doc, validate = true)
|
14
14
|
doc.run_callbacks :before_create
|
15
|
-
Save.execute(doc)
|
15
|
+
Save.execute(doc, validate)
|
16
16
|
doc.run_callbacks :after_create
|
17
17
|
return doc
|
18
18
|
end
|
@@ -2,13 +2,14 @@
|
|
2
2
|
module Mongoid #:nodoc:
|
3
3
|
module Commands
|
4
4
|
class Delete
|
5
|
+
extend Deletion
|
5
6
|
# Performs a delete of the supplied +Document+ without any callbacks.
|
6
7
|
#
|
7
8
|
# Options:
|
8
9
|
#
|
9
10
|
# doc: A new +Document+ that is going to be deleted.
|
10
11
|
def self.execute(doc)
|
11
|
-
|
12
|
+
delete(doc)
|
12
13
|
end
|
13
14
|
end
|
14
15
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Mongoid #:nodoc
|
2
|
+
module Commands #:nodoc
|
3
|
+
module Deletion #:nodoc
|
4
|
+
# If the +Document+ has a parent, delete it from the parent's attributes,
|
5
|
+
# otherwise delete it from it's collection.
|
6
|
+
def delete(doc)
|
7
|
+
parent = doc.parent
|
8
|
+
parent ? parent.remove(doc) : doc.collection.remove(:_id => doc.id)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -2,6 +2,7 @@
|
|
2
2
|
module Mongoid #:nodoc:
|
3
3
|
module Commands
|
4
4
|
class Destroy
|
5
|
+
extend Deletion
|
5
6
|
# Performs a destroy of the supplied +Document+, with the necessary
|
6
7
|
# callbacks. It then deletes the record from the collection.
|
7
8
|
#
|
@@ -10,7 +11,7 @@ module Mongoid #:nodoc:
|
|
10
11
|
# doc: A new +Document+ that is going to be destroyed.
|
11
12
|
def self.execute(doc)
|
12
13
|
doc.run_callbacks :before_destroy
|
13
|
-
|
14
|
+
delete(doc)
|
14
15
|
doc.run_callbacks :after_destroy
|
15
16
|
end
|
16
17
|
end
|
@@ -10,8 +10,8 @@ module Mongoid #:nodoc:
|
|
10
10
|
# doc: A +Document+ that is going to be persisted.
|
11
11
|
#
|
12
12
|
# Returns: +Document+ if validation passes, +false+ if not.
|
13
|
-
def self.execute(doc)
|
14
|
-
return false
|
13
|
+
def self.execute(doc, validate = true)
|
14
|
+
return false if validate && !doc.valid?
|
15
15
|
doc.run_callbacks :before_save
|
16
16
|
parent = doc.parent
|
17
17
|
doc.new_record = false
|
data/lib/mongoid/document.rb
CHANGED
@@ -253,6 +253,15 @@ module Mongoid #:nodoc:
|
|
253
253
|
@attributes = collection.find_one(:_id => id).with_indifferent_access
|
254
254
|
end
|
255
255
|
|
256
|
+
# Remove a child document from this parent +Document+. Will reset the
|
257
|
+
# memoized association and notify the parent of the change.
|
258
|
+
def remove(child)
|
259
|
+
name = child.association_name
|
260
|
+
@attributes.remove(name, child.attributes)
|
261
|
+
remove_instance_variable("@#{name}")
|
262
|
+
notify
|
263
|
+
end
|
264
|
+
|
256
265
|
# Return the root +Document+ in the object graph. If the current +Document+
|
257
266
|
# is the root object in the graph it will return self.
|
258
267
|
def root
|
@@ -3,6 +3,21 @@ module Mongoid #:nodoc:
|
|
3
3
|
module Extensions #:nodoc:
|
4
4
|
module Hash #:nodoc:
|
5
5
|
module Accessors #:nodoc:
|
6
|
+
|
7
|
+
# Remove a set of attributes from a hash. If the attributes are
|
8
|
+
# contained in an array it will remove it from the array, otherwise it
|
9
|
+
# will delete the child attribute completely.
|
10
|
+
def remove(key, attrs)
|
11
|
+
elements = self[key]
|
12
|
+
if elements
|
13
|
+
key.singular? ? self[key] = nil : elements.delete(attrs)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# Inserts new attributes into the hash. If the elements are present in
|
18
|
+
# the hash it will update them, otherwise it will add the new
|
19
|
+
# attributes into the hash as either a child hash or child array of
|
20
|
+
# hashes.
|
6
21
|
def insert(key, attrs)
|
7
22
|
elements = self[key]
|
8
23
|
if elements
|
data/mongoid.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mongoid}
|
8
|
-
s.version = "0.10.
|
8
|
+
s.version = "0.10.5"
|
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"]
|
@@ -37,6 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
"lib/mongoid/commands/create.rb",
|
38
38
|
"lib/mongoid/commands/delete.rb",
|
39
39
|
"lib/mongoid/commands/delete_all.rb",
|
40
|
+
"lib/mongoid/commands/deletion.rb",
|
40
41
|
"lib/mongoid/commands/destroy.rb",
|
41
42
|
"lib/mongoid/commands/destroy_all.rb",
|
42
43
|
"lib/mongoid/commands/save.rb",
|
@@ -257,6 +257,30 @@ describe Mongoid::Document do
|
|
257
257
|
|
258
258
|
end
|
259
259
|
|
260
|
+
context "without validation" do
|
261
|
+
|
262
|
+
before do
|
263
|
+
@comment = Comment.new
|
264
|
+
end
|
265
|
+
|
266
|
+
it "always persists" do
|
267
|
+
@comment.save(false).should be_true
|
268
|
+
end
|
269
|
+
|
270
|
+
end
|
271
|
+
|
272
|
+
context "with failing validation" do
|
273
|
+
|
274
|
+
before do
|
275
|
+
@comment = Comment.new
|
276
|
+
end
|
277
|
+
|
278
|
+
it "returns false" do
|
279
|
+
@comment.save.should_not be_valid
|
280
|
+
end
|
281
|
+
|
282
|
+
end
|
283
|
+
|
260
284
|
end
|
261
285
|
|
262
286
|
context "when has many exists through a has one" do
|
@@ -9,19 +9,19 @@ describe Mongoid::Commands::Create do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "executes a save command" do
|
12
|
-
Mongoid::Commands::Save.expects(:execute).with(@document).returns(@document)
|
12
|
+
Mongoid::Commands::Save.expects(:execute).with(@document, true).returns(@document)
|
13
13
|
Mongoid::Commands::Create.execute(@document)
|
14
14
|
end
|
15
15
|
|
16
16
|
it "runs the before and after create callbacks" do
|
17
17
|
@document.expects(:run_callbacks).with(:before_create)
|
18
|
-
Mongoid::Commands::Save.expects(:execute).with(@document).returns(@document)
|
18
|
+
Mongoid::Commands::Save.expects(:execute).with(@document, true).returns(@document)
|
19
19
|
@document.expects(:run_callbacks).with(:after_create)
|
20
20
|
Mongoid::Commands::Create.execute(@document)
|
21
21
|
end
|
22
22
|
|
23
23
|
it "returns the document" do
|
24
|
-
Mongoid::Commands::Save.expects(:execute).with(@document).returns(@document)
|
24
|
+
Mongoid::Commands::Save.expects(:execute).with(@document, true).returns(@document)
|
25
25
|
Mongoid::Commands::Create.execute(@document).should == @document
|
26
26
|
end
|
27
27
|
|
@@ -6,7 +6,7 @@ describe Mongoid::Commands::Delete do
|
|
6
6
|
|
7
7
|
before do
|
8
8
|
@collection = mock
|
9
|
-
@document = stub(:collection => @collection, :id => "1")
|
9
|
+
@document = stub(:collection => @collection, :id => "1", :parent => false)
|
10
10
|
end
|
11
11
|
|
12
12
|
it "removes the document from its collection" do
|
@@ -14,6 +14,22 @@ describe Mongoid::Commands::Delete do
|
|
14
14
|
Mongoid::Commands::Delete.execute(@document)
|
15
15
|
end
|
16
16
|
|
17
|
+
context "when the document is embedded" do
|
18
|
+
|
19
|
+
before do
|
20
|
+
@parent = Person.new
|
21
|
+
@address = Address.new(:street => "Genoa Pl")
|
22
|
+
@parent.addresses << @address
|
23
|
+
end
|
24
|
+
|
25
|
+
it "removes the document from the parent attributes" do
|
26
|
+
@parent.addresses.should == [@address]
|
27
|
+
Mongoid::Commands::Delete.execute(@address)
|
28
|
+
@parent.addresses.should be_empty
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
17
33
|
end
|
18
34
|
|
19
35
|
end
|
@@ -8,7 +8,8 @@ describe Mongoid::Commands::Destroy do
|
|
8
8
|
@collection = stub_everything
|
9
9
|
@document = stub(:run_callbacks => true,
|
10
10
|
:collection => @collection,
|
11
|
-
:id => "1"
|
11
|
+
:id => "1",
|
12
|
+
:parent => false)
|
12
13
|
end
|
13
14
|
|
14
15
|
it "runs the before and after destroy callbacks" do
|
@@ -22,6 +23,22 @@ describe Mongoid::Commands::Destroy do
|
|
22
23
|
Mongoid::Commands::Destroy.execute(@document)
|
23
24
|
end
|
24
25
|
|
26
|
+
context "when the document is embedded" do
|
27
|
+
|
28
|
+
before do
|
29
|
+
@parent = Person.new
|
30
|
+
@address = Address.new(:street => "Genoa Pl")
|
31
|
+
@parent.addresses << @address
|
32
|
+
end
|
33
|
+
|
34
|
+
it "removes the document from the parent attributes" do
|
35
|
+
@parent.addresses.should == [@address]
|
36
|
+
Mongoid::Commands::Destroy.execute(@address)
|
37
|
+
@parent.addresses.should be_empty
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
25
42
|
end
|
26
43
|
|
27
44
|
end
|
@@ -72,6 +72,18 @@ describe Mongoid::Commands::Save do
|
|
72
72
|
|
73
73
|
end
|
74
74
|
|
75
|
+
context "when saving without validation" do
|
76
|
+
|
77
|
+
before do
|
78
|
+
@document.stubs(:valid?).returns(false)
|
79
|
+
end
|
80
|
+
|
81
|
+
it "ignores validation and returns true" do
|
82
|
+
Mongoid::Commands::Save.execute(@document, false).should be_true
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
75
87
|
end
|
76
88
|
|
77
89
|
context "when the document is embedded" do
|
@@ -27,7 +27,7 @@ describe Mongoid::Commands do
|
|
27
27
|
describe "#save" do
|
28
28
|
|
29
29
|
it "delegates to the Save command" do
|
30
|
-
Mongoid::Commands::Save.expects(:execute).with(@person).returns(true)
|
30
|
+
Mongoid::Commands::Save.expects(:execute).with(@person, true).returns(true)
|
31
31
|
@person.save
|
32
32
|
end
|
33
33
|
|
@@ -38,12 +38,25 @@ describe Mongoid::Commands do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
it "delegates to the Create command" do
|
41
|
-
Mongoid::Commands::Create.expects(:execute).with(@person).returns(
|
41
|
+
Mongoid::Commands::Create.expects(:execute).with(@person, true).returns(true)
|
42
42
|
@person.save
|
43
43
|
end
|
44
44
|
|
45
45
|
end
|
46
46
|
|
47
|
+
context "when not validating" do
|
48
|
+
|
49
|
+
before do
|
50
|
+
@person = Person.new
|
51
|
+
end
|
52
|
+
|
53
|
+
it "passes the validate param to the command" do
|
54
|
+
Mongoid::Commands::Create.expects(:execute).with(@person, false).returns(true)
|
55
|
+
@person.save(false)
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
47
60
|
end
|
48
61
|
|
49
62
|
describe "#save!" do
|
@@ -51,8 +64,8 @@ describe Mongoid::Commands do
|
|
51
64
|
context "when validation passes" do
|
52
65
|
|
53
66
|
it "it returns the person" do
|
54
|
-
Mongoid::Commands::Save.expects(:execute).with(@person).returns(
|
55
|
-
@person.save
|
67
|
+
Mongoid::Commands::Save.expects(:execute).with(@person, true).returns(true)
|
68
|
+
@person.save!
|
56
69
|
end
|
57
70
|
|
58
71
|
end
|
@@ -60,7 +73,7 @@ describe Mongoid::Commands do
|
|
60
73
|
context "when validation fails" do
|
61
74
|
|
62
75
|
it "it raises an error" do
|
63
|
-
Mongoid::Commands::Save.expects(:execute).with(@person).returns(false)
|
76
|
+
Mongoid::Commands::Save.expects(:execute).with(@person, true).returns(false)
|
64
77
|
lambda { @person.save! }.should raise_error
|
65
78
|
end
|
66
79
|
|
@@ -73,14 +86,14 @@ describe Mongoid::Commands do
|
|
73
86
|
end
|
74
87
|
|
75
88
|
it "delegates to the Create command" do
|
76
|
-
Mongoid::Commands::Create.expects(:execute).with(@person).returns(
|
89
|
+
Mongoid::Commands::Create.expects(:execute).with(@person, true).returns(true)
|
77
90
|
@person.save!
|
78
91
|
end
|
79
92
|
|
80
93
|
context "when validation fails" do
|
81
94
|
|
82
95
|
it "it raises an error " do
|
83
|
-
Mongoid::Commands::Create.expects(:execute).with(@person).returns(false)
|
96
|
+
Mongoid::Commands::Create.expects(:execute).with(@person, true).returns(false)
|
84
97
|
lambda { @person.save! }.should raise_error
|
85
98
|
end
|
86
99
|
|
@@ -93,7 +106,7 @@ describe Mongoid::Commands do
|
|
93
106
|
describe "#update_attributes" do
|
94
107
|
|
95
108
|
it "delegates to the Save command" do
|
96
|
-
Mongoid::Commands::Save.expects(:execute).with(@person).returns(
|
109
|
+
Mongoid::Commands::Save.expects(:execute).with(@person, true).returns(true)
|
97
110
|
@person.update_attributes({})
|
98
111
|
end
|
99
112
|
|
@@ -104,8 +117,8 @@ describe Mongoid::Commands do
|
|
104
117
|
context "when validation passes" do
|
105
118
|
|
106
119
|
it "it returns the person" do
|
107
|
-
Mongoid::Commands::Save.expects(:execute).with(@person).returns(
|
108
|
-
@person.update_attributes({}).should
|
120
|
+
Mongoid::Commands::Save.expects(:execute).with(@person, true).returns(true)
|
121
|
+
@person.update_attributes({}).should be_true
|
109
122
|
end
|
110
123
|
|
111
124
|
end
|
@@ -113,7 +126,7 @@ describe Mongoid::Commands do
|
|
113
126
|
context "when validation fails" do
|
114
127
|
|
115
128
|
it "it raises an error" do
|
116
|
-
Mongoid::Commands::Save.expects(:execute).with(@person).returns(false)
|
129
|
+
Mongoid::Commands::Save.expects(:execute).with(@person, true).returns(false)
|
117
130
|
lambda { @person.update_attributes!({}) }.should raise_error
|
118
131
|
end
|
119
132
|
|
@@ -504,6 +504,40 @@ describe Mongoid::Document do
|
|
504
504
|
|
505
505
|
end
|
506
506
|
|
507
|
+
describe "#remove" do
|
508
|
+
|
509
|
+
context "when removing an element from a has many" do
|
510
|
+
|
511
|
+
before do
|
512
|
+
@person = Person.new
|
513
|
+
@address = Address.new(:street => "Testing")
|
514
|
+
@person.addresses << @address
|
515
|
+
end
|
516
|
+
|
517
|
+
it "removes the child document attributes" do
|
518
|
+
@person.remove(@address)
|
519
|
+
@person.addresses.size.should == 0
|
520
|
+
end
|
521
|
+
|
522
|
+
end
|
523
|
+
|
524
|
+
context "when removing a has one" do
|
525
|
+
|
526
|
+
before do
|
527
|
+
@person = Person.new
|
528
|
+
@name = Name.new(:first_name => "Neytiri")
|
529
|
+
@person.name = @name
|
530
|
+
end
|
531
|
+
|
532
|
+
it "removes the child document attributes" do
|
533
|
+
@person.remove(@name)
|
534
|
+
@person.name.document.should be_nil
|
535
|
+
end
|
536
|
+
|
537
|
+
end
|
538
|
+
|
539
|
+
end
|
540
|
+
|
507
541
|
describe "#root" do
|
508
542
|
|
509
543
|
before do
|
@@ -2,27 +2,73 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe Mongoid::Extensions::Hash::Accessors do
|
4
4
|
|
5
|
-
|
5
|
+
before do
|
6
|
+
@hash = {
|
7
|
+
:_id => 1,
|
8
|
+
:title => "value",
|
9
|
+
:name => {
|
10
|
+
:_id => 2, :first_name => "Test", :last_name => "User"
|
11
|
+
},
|
12
|
+
:pet => {
|
13
|
+
:_id => 6,
|
14
|
+
:name => "Fido",
|
15
|
+
:vet_visits => [ { :date => Date.new(2007, 1, 1) } ]
|
16
|
+
},
|
17
|
+
:addresses => [
|
18
|
+
{ :_id => 3, :street => "First Street" },
|
19
|
+
{ :_id => 4, :street => "Second Street" }
|
20
|
+
]
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#remove" do
|
25
|
+
|
26
|
+
context "when removing from an array" do
|
27
|
+
|
28
|
+
context "when the elements exist" do
|
29
|
+
|
30
|
+
it "removes the element from the array" do
|
31
|
+
@hash.remove(:addresses, { :_id => 3, :street => "First Street" })
|
32
|
+
@hash[:addresses].size.should == 1
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
context "when the elements do not exist" do
|
38
|
+
|
39
|
+
it "does not raise an error" do
|
40
|
+
@hash.remove(:aliases, { :_id => 3, :street => "First Street" })
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
6
44
|
|
7
|
-
before do
|
8
|
-
@hash = {
|
9
|
-
:_id => 1,
|
10
|
-
:title => "value",
|
11
|
-
:name => {
|
12
|
-
:_id => 2, :first_name => "Test", :last_name => "User"
|
13
|
-
},
|
14
|
-
:pet => {
|
15
|
-
:_id => 6,
|
16
|
-
:name => "Fido",
|
17
|
-
:vet_visits => [ { :date => Date.new(2007, 1, 1) } ]
|
18
|
-
},
|
19
|
-
:addresses => [
|
20
|
-
{ :_id => 3, :street => "First Street" },
|
21
|
-
{ :_id => 4, :street => "Second Street" }
|
22
|
-
]
|
23
|
-
}
|
24
45
|
end
|
25
46
|
|
47
|
+
context "when removing a single object" do
|
48
|
+
|
49
|
+
context "when the element exists" do
|
50
|
+
|
51
|
+
it "removes the element from the array" do
|
52
|
+
@hash.remove(:name, { :_id => 2, :first_name => "Test", :last_name => "User" })
|
53
|
+
@hash[:name].should be_nil
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
context "when the element does not exist" do
|
59
|
+
|
60
|
+
it "does not raise an error" do
|
61
|
+
@hash.remove(:alias, { :_id => 3, :street => "First Street" })
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
describe "#insert" do
|
71
|
+
|
26
72
|
context "when writing to a hash with a child array" do
|
27
73
|
|
28
74
|
context "when child attributes not present" do
|
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.10.
|
4
|
+
version: 0.10.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Durran Jordan
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- lib/mongoid/commands/create.rb
|
114
114
|
- lib/mongoid/commands/delete.rb
|
115
115
|
- lib/mongoid/commands/delete_all.rb
|
116
|
+
- lib/mongoid/commands/deletion.rb
|
116
117
|
- lib/mongoid/commands/destroy.rb
|
117
118
|
- lib/mongoid/commands/destroy_all.rb
|
118
119
|
- lib/mongoid/commands/save.rb
|