sortifiable 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ *0.2.6 (March 5th, 2012)
2
+
3
+ * Ensure that the default scope is ignored when performing list updates
4
+
5
+
1
6
  *0.2.5 (September 11th, 2011)
2
7
 
3
8
  * Don't rely on the current position attribute as it may be stale
data/lib/sortifiable.rb CHANGED
@@ -476,7 +476,7 @@ module Sortifiable
476
476
  end
477
477
 
478
478
  def update_position(new_position) #:nodoc:
479
- list_class.update_all({ position_column => new_position }, { list_class.primary_key => id })
479
+ base_scope.update_all({ position_column => new_position }, { list_class.primary_key => id })
480
480
  set_position new_position
481
481
  end
482
482
  end
@@ -1,3 +1,3 @@
1
1
  module Sortifiable
2
- VERSION = "0.2.5"
2
+ VERSION = "0.2.6"
3
3
  end
@@ -827,3 +827,54 @@ class AssociationScopeListTest < ActiveSupport::TestCase
827
827
  end
828
828
 
829
829
  end
830
+
831
+ class DefaultScopeListTest < ActiveSupport::TestCase
832
+
833
+ def setup
834
+ [5, 6].each do |parent_id|
835
+ (1..4).each do |i|
836
+ ParanoidMixin.create! :pos => i, :parent_id => parent_id
837
+ end
838
+ end
839
+ end
840
+
841
+ def relation
842
+ ParanoidMixin.where(:parent_id => 5).where('pos IS NOT NULL')
843
+ end
844
+
845
+ def test_default_scope_is_ignored_when_updating_position
846
+
847
+ assert_equal [1, 2, 3, 4], relation.map(&:id)
848
+
849
+ ParanoidMixin.find(3).destroy
850
+ assert_equal [1, 2, 4], relation.map(&:id)
851
+
852
+ ParanoidMixin.find(4).move_to_top
853
+ assert_equal [4, 1, 2], relation.map(&:id)
854
+
855
+ ParanoidMixin.find(2).move_to_bottom
856
+ assert_equal [4, 1, 2], relation.map(&:id)
857
+
858
+ ParanoidMixin.find(1).remove_from_list
859
+ assert_equal false, ParanoidMixin.find(1).in_list?
860
+ assert_equal [4, 2], relation.map(&:id)
861
+
862
+ ParanoidMixin.find(1).add_to_list
863
+ assert_equal true, ParanoidMixin.find(1).in_list?
864
+ assert_equal [4, 2, 1], relation.map(&:id)
865
+
866
+ ParanoidMixin.deleted.find(3).remove_from_list
867
+ assert_equal false, ParanoidMixin.deleted.find(3).in_list?
868
+ assert_equal [4, 2, 1], relation.map(&:id)
869
+
870
+ ParanoidMixin.deleted.find(3).add_to_list
871
+ assert_equal true, ParanoidMixin.deleted.find(3).in_list?
872
+ assert_equal [4, 2, 1], relation.map(&:id)
873
+
874
+ ParanoidMixin.deleted.find(3).restore
875
+ assert_equal [4, 2, 1, 3], relation.map(&:id)
876
+ assert_equal [1, 2, 3, 4], relation.map(&:pos)
877
+
878
+ end
879
+
880
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sortifiable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-11 00:00:00.000000000 +01:00
13
- default_executable:
12
+ date: 2012-03-05 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: activesupport
17
- requirement: &2161594080 !ruby/object:Gem::Requirement
16
+ requirement: &2151822120 !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
19
  - - ! '>='
@@ -22,10 +21,10 @@ dependencies:
22
21
  version: '3.0'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *2161594080
24
+ version_requirements: *2151822120
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: activerecord
28
- requirement: &2161593620 !ruby/object:Gem::Requirement
27
+ requirement: &2151821600 !ruby/object:Gem::Requirement
29
28
  none: false
30
29
  requirements:
31
30
  - - ! '>='
@@ -33,10 +32,10 @@ dependencies:
33
32
  version: '3.0'
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: *2161593620
35
+ version_requirements: *2151821600
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: bundler
39
- requirement: &2161593160 !ruby/object:Gem::Requirement
38
+ requirement: &2151820980 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
42
41
  - - ! '>='
@@ -44,10 +43,10 @@ dependencies:
44
43
  version: 1.0.18
45
44
  type: :development
46
45
  prerelease: false
47
- version_requirements: *2161593160
46
+ version_requirements: *2151820980
48
47
  - !ruby/object:Gem::Dependency
49
48
  name: mysql
50
- requirement: &2161592700 !ruby/object:Gem::Requirement
49
+ requirement: &2151820440 !ruby/object:Gem::Requirement
51
50
  none: false
52
51
  requirements:
53
52
  - - ~>
@@ -55,10 +54,10 @@ dependencies:
55
54
  version: 2.8.1
56
55
  type: :development
57
56
  prerelease: false
58
- version_requirements: *2161592700
57
+ version_requirements: *2151820440
59
58
  - !ruby/object:Gem::Dependency
60
59
  name: mysql2
61
- requirement: &2161592240 !ruby/object:Gem::Requirement
60
+ requirement: &2151819900 !ruby/object:Gem::Requirement
62
61
  none: false
63
62
  requirements:
64
63
  - - ! '>='
@@ -66,10 +65,10 @@ dependencies:
66
65
  version: 0.2.7
67
66
  type: :development
68
67
  prerelease: false
69
- version_requirements: *2161592240
68
+ version_requirements: *2151819900
70
69
  - !ruby/object:Gem::Dependency
71
70
  name: pg
72
- requirement: &2161591780 !ruby/object:Gem::Requirement
71
+ requirement: &2151819240 !ruby/object:Gem::Requirement
73
72
  none: false
74
73
  requirements:
75
74
  - - ! '>='
@@ -77,10 +76,10 @@ dependencies:
77
76
  version: 0.9.0
78
77
  type: :development
79
78
  prerelease: false
80
- version_requirements: *2161591780
79
+ version_requirements: *2151819240
81
80
  - !ruby/object:Gem::Dependency
82
81
  name: sqlite3
83
- requirement: &2161591320 !ruby/object:Gem::Requirement
82
+ requirement: &2151818640 !ruby/object:Gem::Requirement
84
83
  none: false
85
84
  requirements:
86
85
  - - ! '>='
@@ -88,7 +87,7 @@ dependencies:
88
87
  version: 1.3.3
89
88
  type: :development
90
89
  prerelease: false
91
- version_requirements: *2161591320
90
+ version_requirements: *2151818640
92
91
  description: ! 'This gem provides an acts_as_list compatible capability for sorting
93
92
 
94
93
  and reordering a number of objects in a list. The class that has this
@@ -118,7 +117,6 @@ files:
118
117
  - lib/sortifiable/version.rb
119
118
  - sortifiable.gemspec
120
119
  - test/sortifiable_test.rb
121
- has_rdoc: true
122
120
  homepage: http://github.com/pixeltrix/sortifiable/
123
121
  licenses: []
124
122
  post_install_message:
@@ -139,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
137
  version: '0'
140
138
  requirements: []
141
139
  rubyforge_project:
142
- rubygems_version: 1.6.2
140
+ rubygems_version: 1.8.10
143
141
  signing_key:
144
142
  specification_version: 3
145
143
  summary: Sort your models