mongoid-ordering 0.1.3 → 0.1.4

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.
@@ -205,6 +205,16 @@ module Mongoid
205
205
  private
206
206
 
207
207
  def move_lower_siblings_up
208
+ return if self.ordering_scopes.any? do |scope|
209
+ scope_metadata = self.reflect_on_association(scope)
210
+ next if scope_metadata.nil?
211
+
212
+ relation = send(scope_metadata.name)
213
+ next if relation.nil?
214
+
215
+ relation.flagged_for_destroy? && scope_metadata.inverse_metadata(relation).destructive?
216
+ end
217
+
208
218
  self.lower_siblings.each { |s| s.inc(:position, -1) }
209
219
  end
210
220
 
@@ -277,15 +277,27 @@ describe Mongoid::Ordering do
277
277
 
278
278
  describe "destroying a document" do
279
279
 
280
- let!(:sibling1) { DummyParentDocument.create }
281
- let!(:sibling2) { DummyParentDocument.create }
282
- let!(:sibling3) { DummyParentDocument.create }
280
+ let!(:parent1) { DummyParentDocument.create }
281
+ let!(:parent2) { DummyParentDocument.create }
282
+ let!(:parent3) { DummyParentDocument.create }
283
+ let!(:parent3_child1) { DummyChildDocument.create(parent: parent3) }
284
+ let!(:parent3_child2) { DummyChildDocument.create(parent: parent3) }
285
+ let!(:parent3_child3) { DummyChildDocument.create(parent: parent3) }
283
286
 
284
287
  it "moves lower siblings up" do
285
- sibling2.destroy
288
+ parent2.destroy
286
289
 
287
- sibling1.reload.position.should eq(0)
288
- sibling3.reload.position.should eq(1)
290
+ parent1.reload.position.should eq(0)
291
+ parent3.reload.position.should eq(1)
292
+ end
293
+
294
+ context "when deletion is cascaded to the document's children" do
295
+
296
+ it "doesn't move lower siblings of those children up" do
297
+ DummyChildDocument.any_instance.should_not_receive(:inc)
298
+
299
+ parent3.destroy
300
+ end
289
301
  end
290
302
  end
291
303
  end
@@ -5,7 +5,8 @@ class DummyParentDocument
5
5
  ordered scope: nil
6
6
 
7
7
  has_many :children, class_name: "DummyChildDocument",
8
- inverse_of: :parent
8
+ inverse_of: :parent,
9
+ dependent: :destroy
9
10
  end
10
11
 
11
12
  class DummyChildDocument
@@ -14,6 +15,6 @@ class DummyChildDocument
14
15
 
15
16
  ordered scope: :parent
16
17
 
17
- belongs_to :parent, class_name: DummyParentDocument.to_s,
18
+ belongs_to :parent, class_name: "DummyParentDocument",
18
19
  inverse_of: :children
19
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-ordering
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-13 00:00:00.000000000 Z
12
+ date: 2013-08-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
16
- requirement: &70334092153860 !ruby/object:Gem::Requirement
16
+ requirement: &70141127517200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70334092153860
24
+ version_requirements: *70141127517200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mongoid-siblings
27
- requirement: &70334092153340 !ruby/object:Gem::Requirement
27
+ requirement: &70141127516720 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.1.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70334092153340
35
+ version_requirements: *70141127516720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70334092152920 !ruby/object:Gem::Requirement
38
+ requirement: &70141127516340 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70334092152920
46
+ version_requirements: *70141127516340
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70334092152400 !ruby/object:Gem::Requirement
49
+ requirement: &70141127515880 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70334092152400
57
+ version_requirements: *70141127515880
58
58
  description: mongoid-ordering makes it easy to keep your Mongoid documents in order.
59
59
  email: douwe@selenight.nl
60
60
  executables: []
@@ -84,7 +84,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
84
84
  version: '0'
85
85
  segments:
86
86
  - 0
87
- hash: 3787459196807544671
87
+ hash: -1977126769264338189
88
88
  required_rubygems_version: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
@@ -93,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  version: '0'
94
94
  segments:
95
95
  - 0
96
- hash: 3787459196807544671
96
+ hash: -1977126769264338189
97
97
  requirements: []
98
98
  rubyforge_project:
99
99
  rubygems_version: 1.8.6