sortifiable 0.2.5 → 0.2.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/CHANGELOG +5 -0
- data/lib/sortifiable.rb +1 -1
- data/lib/sortifiable/version.rb +1 -1
- data/test/sortifiable_test.rb +51 -0
- metadata +17 -19
data/CHANGELOG
CHANGED
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
|
-
|
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
|
data/lib/sortifiable/version.rb
CHANGED
data/test/sortifiable_test.rb
CHANGED
@@ -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.
|
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:
|
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: &
|
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: *
|
24
|
+
version_requirements: *2151822120
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
26
|
name: activerecord
|
28
|
-
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: *
|
35
|
+
version_requirements: *2151821600
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
37
|
name: bundler
|
39
|
-
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: *
|
46
|
+
version_requirements: *2151820980
|
48
47
|
- !ruby/object:Gem::Dependency
|
49
48
|
name: mysql
|
50
|
-
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: *
|
57
|
+
version_requirements: *2151820440
|
59
58
|
- !ruby/object:Gem::Dependency
|
60
59
|
name: mysql2
|
61
|
-
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: *
|
68
|
+
version_requirements: *2151819900
|
70
69
|
- !ruby/object:Gem::Dependency
|
71
70
|
name: pg
|
72
|
-
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: *
|
79
|
+
version_requirements: *2151819240
|
81
80
|
- !ruby/object:Gem::Dependency
|
82
81
|
name: sqlite3
|
83
|
-
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: *
|
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.
|
140
|
+
rubygems_version: 1.8.10
|
143
141
|
signing_key:
|
144
142
|
specification_version: 3
|
145
143
|
summary: Sort your models
|