mongoid-list 0.1.5 → 0.1.6

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/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm 1.9.2@mongoid-list
1
+ rvm 1.9.3@mongoid-list
data/lib/mongoid/list.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Mongoid
2
2
 
3
-
4
3
  module List
4
+
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  autoload :Collection, 'mongoid/list/collection'
@@ -12,8 +12,6 @@ module Mongoid
12
12
 
13
13
  validates :position, numericality: true, on: :update
14
14
 
15
- index [ include?(Mongoid::Paranoia) ? [ :deleted_at, 1 ] : nil, [ :position, -1 ] ].compact # TODO: MONGOID: Apply a patch
16
-
17
15
  before_create :set_initial_position_in_list
18
16
  before_update :mark_for_update_processing_of_list, if: :position_changed?
19
17
  after_update :update_positions_in_list!, if: :_process_list_change
@@ -32,7 +32,7 @@ module Mongoid
32
32
  next unless should_operate_on_item?(item)
33
33
  criteria = item.atomic_selector
34
34
  updates = { '$inc' => { "#{item.atomic_path}.$.position" => changes[:by] } }
35
- item._parent.class.collection.update(criteria, updates)
35
+ item._root.class.collection.update(criteria, updates)
36
36
  end
37
37
  end
38
38
 
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module List
3
- VERSION = "0.1.5"
3
+ VERSION = "0.1.6"
4
4
  end
5
5
  end
data/mongoid-list.gemspec CHANGED
@@ -13,16 +13,16 @@ Gem::Specification.new do |s|
13
13
  s.summary = 'Simple list behavior for Mongoid'
14
14
  s.homepage = 'https://github.com/davekrupinski/mongoid-list'
15
15
 
16
- s.add_dependency('mongoid', [ '>= 2.0.0' ])
16
+ s.add_dependency('mongoid', [ '>= 2.4.0' ])
17
17
 
18
18
  s.add_development_dependency('bson_ext')
19
- s.add_development_dependency('minitest', [ '>= 2.7.0' ])
19
+ s.add_development_dependency('minitest', [ '>= 2.11.0' ])
20
20
  s.add_development_dependency('mini_shoulda', [ '>= 0.4.0' ])
21
- s.add_development_dependency('spork', [ '>= 0.9.0.rc' ])
22
- s.add_development_dependency('spork-testunit', [ '>= 0.0.6' ])
23
- s.add_development_dependency('guard-minitest', [ '>= 0.4.0' ])
24
- s.add_development_dependency('guard-spork', [ '>= 0.3.1' ])
25
- s.add_development_dependency('turn', [ '>= 0.8.3' ])
21
+ s.add_development_dependency('spork', [ '>= 1.0.0.rc' ])
22
+ s.add_development_dependency('spork-testunit', [ '>= 0.0.8' ])
23
+ s.add_development_dependency('guard-minitest', [ '>= 0.5.0' ])
24
+ s.add_development_dependency('guard-spork', [ '>= 0.5.2' ])
25
+ s.add_development_dependency('turn', [ '>= 0.9.4' ])
26
26
 
27
27
  s.files = `git ls-files`.split("\n")
28
28
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -3,7 +3,6 @@ require 'test_helper'
3
3
 
4
4
  describe Mongoid::List do
5
5
 
6
-
7
6
  context "Setting Initial Position" do
8
7
  setup do
9
8
  @list1 = Simple.create
@@ -49,6 +48,7 @@ describe Mongoid::List do
49
48
 
50
49
 
51
50
  context "Updating List Position" do
51
+
52
52
  setup do
53
53
  @list1 = Simple.create
54
54
  @list2 = Simple.create
@@ -64,6 +64,7 @@ describe Mongoid::List do
64
64
  end
65
65
 
66
66
  context "for @list2 going to position of 1" do
67
+
67
68
  setup do
68
69
  @list2.update_attributes(:position => 1)
69
70
  @list1.reload; @list2.reload; @list3.reload; @list4.reload
@@ -78,6 +79,7 @@ describe Mongoid::List do
78
79
  end
79
80
 
80
81
  context "for @list3 going to position of 1" do
82
+
81
83
  setup do
82
84
  @list3.update_attributes(:position => 1)
83
85
  @list1.reload; @list2.reload; @list3.reload; @list4.reload
@@ -89,9 +91,11 @@ describe Mongoid::List do
89
91
  assert_equal 1, @list3.position
90
92
  assert_equal 4, @list4.position
91
93
  end
94
+
92
95
  end
93
96
 
94
97
  context "for @list1 going to position of 2" do
98
+
95
99
  setup do
96
100
  @list1.update_attributes(:position => 2)
97
101
  @list1.reload; @list2.reload; @list3.reload; @list4.reload
@@ -103,9 +107,11 @@ describe Mongoid::List do
103
107
  assert_equal 3, @list3.position
104
108
  assert_equal 4, @list4.position
105
109
  end
110
+
106
111
  end
107
112
 
108
113
  context "for @list1 going to position of 3" do
114
+
109
115
  setup do
110
116
  @list1.update_attributes(:position => 3)
111
117
  @list1.reload; @list2.reload; @list3.reload; @list4.reload
@@ -117,12 +123,15 @@ describe Mongoid::List do
117
123
  assert_equal 2, @list3.position
118
124
  assert_equal 4, @list4.position
119
125
  end
126
+
120
127
  end
128
+
121
129
  end
122
130
 
123
131
 
124
132
 
125
133
  context "Updating List Position in Embedded Collection" do
134
+
126
135
  setup do
127
136
  @container = Container.create
128
137
  @list1 = @container.items.create
@@ -139,6 +148,7 @@ describe Mongoid::List do
139
148
  end
140
149
 
141
150
  context "for @list2 going to position of 1" do
151
+
142
152
  setup do
143
153
  @list2.update_attributes(:position => 1)
144
154
  @container.reload
@@ -150,9 +160,11 @@ describe Mongoid::List do
150
160
  assert_equal 3, @container.items.find(@list3.id).position
151
161
  assert_equal 4, @container.items.find(@list4.id).position
152
162
  end
163
+
153
164
  end
154
165
 
155
166
  context "for @list3 going to position of 1" do
167
+
156
168
  setup do
157
169
  @list3.update_attributes(:position => 1)
158
170
  @container.reload
@@ -164,9 +176,11 @@ describe Mongoid::List do
164
176
  assert_equal 1, @container.items.find(@list3.id).position
165
177
  assert_equal 4, @container.items.find(@list4.id).position
166
178
  end
179
+
167
180
  end
168
181
 
169
182
  context "for @list1 going to position of 2" do
183
+
170
184
  setup do
171
185
  @list1.update_attributes(:position => 2)
172
186
  @container.reload
@@ -178,9 +192,11 @@ describe Mongoid::List do
178
192
  assert_equal 3, @container.items.find(@list3.id).position
179
193
  assert_equal 4, @container.items.find(@list4.id).position
180
194
  end
195
+
181
196
  end
182
197
 
183
198
  context "for @list1 going to position of 3" do
199
+
184
200
  setup do
185
201
  @list1.update_attributes(:position => 3)
186
202
  @container.reload
@@ -192,12 +208,15 @@ describe Mongoid::List do
192
208
  assert_equal 2, @container.items.find(@list3.id).position
193
209
  assert_equal 4, @container.items.find(@list4.id).position
194
210
  end
211
+
195
212
  end
213
+
196
214
  end
197
215
 
198
216
 
199
217
 
200
- context "Removing an Item from a List" do
218
+ context "#destroy" do
219
+
201
220
  setup do
202
221
  @list1 = Simple.create
203
222
  @list2 = Simple.create
@@ -232,9 +251,11 @@ describe Mongoid::List do
232
251
  assert_equal 2, @list3.position
233
252
  assert_equal 3, @list4.position
234
253
  end
254
+
235
255
  end
236
256
 
237
257
  context "removing from the 4th and last position" do
258
+
238
259
  setup do
239
260
  @list4.destroy
240
261
  @list1.reload; @list2.reload; @list3.reload
@@ -245,12 +266,14 @@ describe Mongoid::List do
245
266
  assert_equal 2, @list2.position
246
267
  assert_equal 3, @list3.position
247
268
  end
269
+
248
270
  end
249
271
  end
250
272
 
251
273
 
252
274
 
253
- context "Removing an Item from an Embedded List" do
275
+ context "#destroy Item from an Embedded List" do
276
+
254
277
  setup do
255
278
  @container = Container.create
256
279
  @list1 = @container.items.create
@@ -260,6 +283,7 @@ describe Mongoid::List do
260
283
  end
261
284
 
262
285
  context "from the first position" do
286
+
263
287
  setup do
264
288
  @list1.destroy
265
289
  @container.reload
@@ -270,9 +294,11 @@ describe Mongoid::List do
270
294
  assert_equal 2, @container.items.find(@list3.id).position
271
295
  assert_equal 3, @container.items.find(@list4.id).position
272
296
  end
297
+
273
298
  end
274
299
 
275
300
  context "removing from the 2nd position" do
301
+
276
302
  setup do
277
303
  @list2.destroy
278
304
  @container.reload
@@ -293,6 +319,7 @@ describe Mongoid::List do
293
319
  end
294
320
 
295
321
  context "removing from the 4th and last position" do
322
+
296
323
  setup do
297
324
  @list4.destroy
298
325
  @container.reload
@@ -303,10 +330,52 @@ describe Mongoid::List do
303
330
  assert_equal 2, @container.items.find(@list2.id).position
304
331
  assert_equal 3, @container.items.find(@list3.id).position
305
332
  end
333
+
306
334
  end
335
+
307
336
  end
308
337
 
309
338
 
339
+ context "#destroy Item from Deeply Embedded List" do
340
+
341
+ setup do
342
+ @container = Container.create
343
+ @list = @container.items.create
344
+ @item1 = @list.items.create
345
+ @item2 = @list.items.create
346
+ @item3 = @list.items.create
347
+ end
348
+
349
+ context "from 1st position" do
350
+
351
+ setup do
352
+ @item1.destroy
353
+ @container.reload
354
+ end
355
+
356
+ should "have moved all other items up" do
357
+ assert_equal 1, @container.items.first.items.find(@item2.id).position
358
+ assert_equal 2, @container.items.first.items.find(@item3.id).position
359
+ end
360
+
361
+ end
362
+
363
+ context "from middle position" do
364
+
365
+ setup do
366
+ @item2.destroy
367
+ @container.reload
368
+ end
369
+
370
+ should "have moved last items up" do
371
+ assert_equal 1, @container.items.first.items.find(@item1.id).position
372
+ assert_equal 2, @container.items.first.items.find(@item3.id).position
373
+ end
374
+
375
+ end
376
+
377
+ end
378
+
310
379
 
311
380
  context "#list_scoped?" do
312
381
 
@@ -797,5 +866,4 @@ describe Mongoid::List do
797
866
 
798
867
  end
799
868
 
800
-
801
869
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,27 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-28 00:00:00.000000000Z
12
+ date: 2011-10-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
16
- requirement: &2153462200 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 2.0.0
21
+ version: 2.4.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2153462200
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.4.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: bson_ext
27
- requirement: &2153461780 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,21 +37,31 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *2153461780
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: minitest
38
- requirement: &2153461200 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
42
52
  - !ruby/object:Gem::Version
43
- version: 2.7.0
53
+ version: 2.11.0
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *2153461200
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.11.0
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: mini_shoulda
49
- requirement: &2153460680 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,62 +69,92 @@ dependencies:
54
69
  version: 0.4.0
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *2153460680
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.4.0
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: spork
60
- requirement: &2153460200 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
64
84
  - !ruby/object:Gem::Version
65
- version: 0.9.0.rc
85
+ version: 1.0.0.rc
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *2153460200
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 1.0.0.rc
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: spork-testunit
71
- requirement: &2153459720 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
75
100
  - !ruby/object:Gem::Version
76
- version: 0.0.6
101
+ version: 0.0.8
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *2153459720
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 0.0.8
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: guard-minitest
82
- requirement: &2153459240 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
86
116
  - !ruby/object:Gem::Version
87
- version: 0.4.0
117
+ version: 0.5.0
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *2153459240
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: 0.5.0
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: guard-spork
93
- requirement: &2153458760 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ! '>='
97
132
  - !ruby/object:Gem::Version
98
- version: 0.3.1
133
+ version: 0.5.2
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *2153458760
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: 0.5.2
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: turn
104
- requirement: &2153458280 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
147
  - - ! '>='
108
148
  - !ruby/object:Gem::Version
109
- version: 0.8.3
149
+ version: 0.9.4
110
150
  type: :development
111
151
  prerelease: false
112
- version_requirements: *2153458280
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: 0.9.4
113
158
  description:
114
159
  email: dave@davekrupinski.com
115
160
  executables: []
@@ -161,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
161
206
  version: '0'
162
207
  requirements: []
163
208
  rubyforge_project:
164
- rubygems_version: 1.8.10
209
+ rubygems_version: 1.8.24
165
210
  signing_key:
166
211
  specification_version: 3
167
212
  summary: Simple list behavior for Mongoid