acts_as_list 1.0.4 → 1.2.0
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.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/continuous_integration.yml +62 -0
- data/.gitignore +3 -2
- data/CHANGELOG.md +15 -0
- data/Gemfile +6 -21
- data/README.md +15 -7
- data/Rakefile +0 -8
- data/acts_as_list.gemspec +9 -4
- data/lib/acts_as_list/active_record/acts/callback_definer.rb +2 -4
- data/lib/acts_as_list/active_record/acts/list.rb +29 -33
- data/lib/acts_as_list/active_record/acts/scope_method_definer.rb +1 -2
- data/lib/acts_as_list/version.rb +1 -1
- data/test/helper.rb +17 -5
- data/test/shared_list.rb +131 -108
- data/test/shared_no_addition.rb +35 -0
- data/test/support/ci_database.yml +20 -0
- data/test/{database.yml → support/database.yml} +4 -2
- data/test/test_list.rb +172 -5
- metadata +103 -23
- data/.travis.yml +0 -55
- data/Appraisals +0 -40
- data/gemfiles/rails_4_2.gemfile +0 -32
- data/gemfiles/rails_5_0.gemfile +0 -31
- data/gemfiles/rails_5_1.gemfile +0 -31
- data/gemfiles/rails_5_2.gemfile +0 -31
- data/gemfiles/rails_6_0.gemfile +0 -31
- data/gemfiles/rails_6_1.gemfile +0 -31
data/test/test_list.rb
CHANGED
@@ -7,11 +7,13 @@ def setup_db(position_options = {})
|
|
7
7
|
$default_position = position_options[:default]
|
8
8
|
|
9
9
|
# sqlite cannot drop/rename/alter columns and add constraints after table creation
|
10
|
-
sqlite = ENV.fetch("DB"
|
10
|
+
sqlite = ENV.fetch("DB") == "sqlite"
|
11
|
+
unique = position_options.delete(:unique)
|
12
|
+
positive = position_options.delete(:positive)
|
11
13
|
|
12
14
|
# AR caches columns options like defaults etc. Clear them!
|
13
15
|
ActiveRecord::Base.connection.create_table :mixins do |t|
|
14
|
-
t.column :pos, :integer, **position_options unless
|
16
|
+
t.column :pos, :integer, **position_options unless positive && sqlite
|
15
17
|
t.column :active, :boolean, default: true
|
16
18
|
t.column :parent_id, :integer
|
17
19
|
t.column :parent_type, :string
|
@@ -20,11 +22,11 @@ def setup_db(position_options = {})
|
|
20
22
|
t.column :state, :integer
|
21
23
|
end
|
22
24
|
|
23
|
-
if
|
25
|
+
if unique && !(sqlite && positive)
|
24
26
|
ActiveRecord::Base.connection.add_index :mixins, :pos, unique: true
|
25
27
|
end
|
26
28
|
|
27
|
-
if
|
29
|
+
if positive
|
28
30
|
if sqlite
|
29
31
|
# SQLite cannot add constraint after table creation, also cannot add unique inside ADD COLUMN
|
30
32
|
ActiveRecord::Base.connection.execute('ALTER TABLE mixins ADD COLUMN pos integer8 NOT NULL CHECK (pos > 0) DEFAULT 1')
|
@@ -48,9 +50,21 @@ def setup_db(position_options = {})
|
|
48
50
|
|
49
51
|
ActiveRecord::Base.connection.add_index 'altid-table', :pos, unique: true
|
50
52
|
|
53
|
+
# This table is used to test table names with a composite primary_key
|
54
|
+
ActiveRecord::Base.connection.create_table 'composite-primary-key-table', primary_key: [:first_id, :second_id] do |t|
|
55
|
+
t.integer :first_id, null: false
|
56
|
+
t.integer :second_id, null: false
|
57
|
+
t.column :parent_id, :integer
|
58
|
+
t.column :parent_type, :string
|
59
|
+
t.column :pos, :integer
|
60
|
+
t.column :created_at, :datetime
|
61
|
+
t.column :updated_at, :datetime
|
62
|
+
t.column :state, :integer
|
63
|
+
end
|
64
|
+
|
51
65
|
mixins = [ Mixin, ListMixin, ListMixinSub1, ListMixinSub2, ListWithStringScopeMixin,
|
52
66
|
ArrayScopeListMixin, ZeroBasedMixin, DefaultScopedMixin, EnumArrayScopeListMixin,
|
53
|
-
DefaultScopedWhereMixin, TopAdditionMixin, NoAdditionMixin, QuotedList, TouchDisabledMixin ]
|
67
|
+
DefaultScopedWhereMixin, TopAdditionMixin, NoAdditionMixin, QuotedList, TouchDisabledMixin, CompositePrimaryKeyList, CompositePrimaryKeyListScoped ]
|
54
68
|
|
55
69
|
ActiveRecord::Base.connection.schema_cache.clear!
|
56
70
|
mixins.each do |klass|
|
@@ -194,6 +208,21 @@ class QuotedList < ActiveRecord::Base
|
|
194
208
|
acts_as_list column: :order
|
195
209
|
end
|
196
210
|
|
211
|
+
class CompositePrimaryKeyList < ActiveRecord::Base
|
212
|
+
self.table_name = "composite-primary-key-table"
|
213
|
+
self.primary_key = [:first_id, :second_id]
|
214
|
+
|
215
|
+
acts_as_list column: "pos"
|
216
|
+
end
|
217
|
+
|
218
|
+
class CompositePrimaryKeyListScoped < CompositePrimaryKeyList
|
219
|
+
acts_as_list column: "pos", scope: :parent_id
|
220
|
+
end
|
221
|
+
|
222
|
+
class CompositePrimaryKeyListScopedError < CompositePrimaryKeyListScoped
|
223
|
+
validates :state, presence: true
|
224
|
+
end
|
225
|
+
|
197
226
|
class ActsAsListTestCase < Minitest::Test
|
198
227
|
# No default test required as this class is abstract.
|
199
228
|
# Need for test/unit.
|
@@ -604,6 +633,42 @@ class MultiDestroyTest < ActsAsListTestCase
|
|
604
633
|
end
|
605
634
|
end
|
606
635
|
|
636
|
+
class MultiUpdateTest < ActsAsListTestCase
|
637
|
+
|
638
|
+
def setup
|
639
|
+
setup_db
|
640
|
+
end
|
641
|
+
|
642
|
+
def test_multiple_updates_within_transaction
|
643
|
+
@page = ListMixin.create! id: 100, parent_id: nil, pos: 1
|
644
|
+
@row = ListMixin.create! parent_id: @page.id, pos: 1
|
645
|
+
@column1 = ListMixin.create! parent_id: @row.id, pos: 1
|
646
|
+
@column2 = ListMixin.create! parent_id: @row.id, pos: 2
|
647
|
+
@rich_text1 = ListMixin.create! parent_id: @column1.id, pos: 1
|
648
|
+
@rich_text2 = ListMixin.create! parent_id: @column2.id, pos: 1
|
649
|
+
|
650
|
+
ActiveRecord::Base.transaction do
|
651
|
+
@rich_text1.update!(parent_id: @column2.id, pos: 1)
|
652
|
+
|
653
|
+
assert_equal [@rich_text1.id, @rich_text2.id], ListMixin.where(parent_id: @column2.id).order('pos').map(&:id)
|
654
|
+
assert_equal [1, 2], ListMixin.where(parent_id: @column2.id).order('pos').map(&:pos)
|
655
|
+
|
656
|
+
@column1.destroy!
|
657
|
+
assert_equal [@column2.id], ListMixin.where(parent_id: @row.id).order('pos').map(&:id)
|
658
|
+
assert_equal [1], ListMixin.where(parent_id: @row.id).order('pos').map(&:pos)
|
659
|
+
|
660
|
+
@rich_text1.update!(parent_id: @page.id, pos: 1)
|
661
|
+
@rich_text2.update!(parent_id: @page.id, pos: 2)
|
662
|
+
@row.destroy!
|
663
|
+
@column2.destroy!
|
664
|
+
end
|
665
|
+
|
666
|
+
assert_equal(1, @page.reload.pos)
|
667
|
+
assert_equal [@rich_text1.id, @rich_text2.id], ListMixin.where(parent_id: @page.id).order('pos').map(&:id)
|
668
|
+
assert_equal [1, 2], ListMixin.where(parent_id: @page.id).order('pos').map(&:pos)
|
669
|
+
end
|
670
|
+
end
|
671
|
+
|
607
672
|
#class TopAdditionMixin < Mixin
|
608
673
|
|
609
674
|
class TopAdditionTest < ActsAsListTestCase
|
@@ -1084,3 +1149,105 @@ class SequentialUpdatesMixinNotNullUniquePositiveConstraintsTest < ActsAsListTes
|
|
1084
1149
|
end
|
1085
1150
|
end
|
1086
1151
|
end
|
1152
|
+
|
1153
|
+
if ActiveRecord::VERSION::MAJOR == 7 && ActiveRecord::VERSION::MINOR >= 1 || ActiveRecord::VERSION::MAJOR > 7
|
1154
|
+
class CompositePrimaryKeyListTest < ActsAsListTestCase
|
1155
|
+
def setup
|
1156
|
+
setup_db
|
1157
|
+
(1..4).each { |counter| CompositePrimaryKeyList.create!({first_id: counter, second_id: counter, pos: counter}) }
|
1158
|
+
end
|
1159
|
+
|
1160
|
+
def test_insert_at
|
1161
|
+
new = CompositePrimaryKeyList.create({first_id: 5, second_id: 5})
|
1162
|
+
assert_equal 5, new.pos
|
1163
|
+
|
1164
|
+
new.insert_at(1)
|
1165
|
+
assert_equal 1, new.pos
|
1166
|
+
|
1167
|
+
new.insert_at(5)
|
1168
|
+
assert_equal 5, new.pos
|
1169
|
+
|
1170
|
+
new.insert_at(3)
|
1171
|
+
assert_equal 3, new.pos
|
1172
|
+
end
|
1173
|
+
|
1174
|
+
def test_move_lower
|
1175
|
+
item = CompositePrimaryKeyList.order(:pos).first
|
1176
|
+
item.move_lower
|
1177
|
+
assert_equal 2, item.pos
|
1178
|
+
end
|
1179
|
+
|
1180
|
+
def test_move_higher
|
1181
|
+
item = CompositePrimaryKeyList.order(:pos).second
|
1182
|
+
item.move_higher
|
1183
|
+
assert_equal 1, item.pos
|
1184
|
+
end
|
1185
|
+
|
1186
|
+
def test_move_to_bottom
|
1187
|
+
item = CompositePrimaryKeyList.order(:pos).first
|
1188
|
+
item.move_to_bottom
|
1189
|
+
assert_equal 4, item.pos
|
1190
|
+
end
|
1191
|
+
|
1192
|
+
def test_move_to_top
|
1193
|
+
new_item = CompositePrimaryKeyList.create!({first_id: 5, second_id: 5})
|
1194
|
+
assert_equal 5, new_item.pos
|
1195
|
+
|
1196
|
+
new_item.move_to_top
|
1197
|
+
assert_equal 1, new_item.pos
|
1198
|
+
end
|
1199
|
+
|
1200
|
+
def test_remove_from_list
|
1201
|
+
assert_equal true, CompositePrimaryKeyList.find([1, 1]).in_list?
|
1202
|
+
CompositePrimaryKeyList.find([1,1]).remove_from_list
|
1203
|
+
assert_equal false, CompositePrimaryKeyList.find([1, 1]).in_list?
|
1204
|
+
end
|
1205
|
+
|
1206
|
+
def test_increment_position
|
1207
|
+
item = CompositePrimaryKeyList.order(:pos).first
|
1208
|
+
item.increment_position
|
1209
|
+
assert_equal 2, item.pos
|
1210
|
+
end
|
1211
|
+
|
1212
|
+
def test_decrement_position
|
1213
|
+
item = CompositePrimaryKeyList.order(:pos).second
|
1214
|
+
item.decrement_position
|
1215
|
+
assert_equal 1, item.pos
|
1216
|
+
end
|
1217
|
+
|
1218
|
+
def test_set_list_position
|
1219
|
+
item = CompositePrimaryKeyList.order(:pos).first
|
1220
|
+
item.set_list_position(4)
|
1221
|
+
assert_equal 4, item.pos
|
1222
|
+
end
|
1223
|
+
|
1224
|
+
def test_create_at_top
|
1225
|
+
new = CompositePrimaryKeyList.create({first_id: 5, second_id: 5, pos: 1})
|
1226
|
+
assert_equal 1, new.pos
|
1227
|
+
end
|
1228
|
+
|
1229
|
+
def test_destroy
|
1230
|
+
new_item = CompositePrimaryKeyList.create({first_id: 5, second_id: 5})
|
1231
|
+
assert_equal 5, new_item.pos
|
1232
|
+
assert_equal true, new_item.last?
|
1233
|
+
|
1234
|
+
new_item.insert_at(1)
|
1235
|
+
assert_equal 1, new_item.pos
|
1236
|
+
assert_equal true, new_item.first?
|
1237
|
+
|
1238
|
+
new_item.destroy
|
1239
|
+
assert_equal [1,2,3,4], CompositePrimaryKeyList.all.map(&:pos).sort
|
1240
|
+
end
|
1241
|
+
end
|
1242
|
+
|
1243
|
+
class CompositePrimaryKeyListScopedTest < ActsAsListTestCase
|
1244
|
+
include Shared::List
|
1245
|
+
|
1246
|
+
def setup
|
1247
|
+
setup_db
|
1248
|
+
|
1249
|
+
super(CompositePrimaryKeyListScoped, CompositePrimaryKeyListScopedError, :first_id)
|
1250
|
+
end
|
1251
|
+
end
|
1252
|
+
end
|
1253
|
+
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Swanand Pagnis
|
8
8
|
- Brendon Muir
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-06-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -17,28 +17,112 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '6.1'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '6.1'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: activesupport
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 1
|
35
|
-
type: :
|
34
|
+
version: '6.1'
|
35
|
+
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 1
|
41
|
+
version: '6.1'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: minitest-hooks
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.5.1
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 1.5.1
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: mocha
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 2.1.0
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 2.1.0
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: timecop
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 0.9.8
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 0.9.8
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: mysql2
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 0.5.6
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 0.5.6
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: pg
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 1.5.5
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 1.5.5
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: sqlite3
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: 1.7.2
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.7.2
|
42
126
|
description: This "acts_as" extension provides the capabilities for sorting and reordering
|
43
127
|
a number of objects in a list. The class that has this specified needs to have a
|
44
128
|
"position" column defined as an integer on the mapped database table.
|
@@ -51,21 +135,15 @@ extra_rdoc_files: []
|
|
51
135
|
files:
|
52
136
|
- ".gemtest"
|
53
137
|
- ".github/FUNDING.yml"
|
138
|
+
- ".github/dependabot.yml"
|
139
|
+
- ".github/workflows/continuous_integration.yml"
|
54
140
|
- ".gitignore"
|
55
|
-
- ".travis.yml"
|
56
|
-
- Appraisals
|
57
141
|
- CHANGELOG.md
|
58
142
|
- Gemfile
|
59
143
|
- MIT-LICENSE
|
60
144
|
- README.md
|
61
145
|
- Rakefile
|
62
146
|
- acts_as_list.gemspec
|
63
|
-
- gemfiles/rails_4_2.gemfile
|
64
|
-
- gemfiles/rails_5_0.gemfile
|
65
|
-
- gemfiles/rails_5_1.gemfile
|
66
|
-
- gemfiles/rails_5_2.gemfile
|
67
|
-
- gemfiles/rails_6_0.gemfile
|
68
|
-
- gemfiles/rails_6_1.gemfile
|
69
147
|
- init.rb
|
70
148
|
- lib/acts_as_list.rb
|
71
149
|
- lib/acts_as_list/active_record/acts/active_record.rb
|
@@ -79,7 +157,6 @@ files:
|
|
79
157
|
- lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb
|
80
158
|
- lib/acts_as_list/active_record/acts/top_of_list_method_definer.rb
|
81
159
|
- lib/acts_as_list/version.rb
|
82
|
-
- test/database.yml
|
83
160
|
- test/helper.rb
|
84
161
|
- test/shared.rb
|
85
162
|
- test/shared_array_scope_list.rb
|
@@ -89,6 +166,8 @@ files:
|
|
89
166
|
- test/shared_quoting.rb
|
90
167
|
- test/shared_top_addition.rb
|
91
168
|
- test/shared_zero_based.rb
|
169
|
+
- test/support/ci_database.yml
|
170
|
+
- test/support/database.yml
|
92
171
|
- test/test_default_scope_with_select.rb
|
93
172
|
- test/test_joined_list.rb
|
94
173
|
- test/test_list.rb
|
@@ -96,14 +175,14 @@ files:
|
|
96
175
|
- test/test_no_update_for_scope_destruction.rb
|
97
176
|
- test/test_no_update_for_subclasses.rb
|
98
177
|
- test/test_scope_with_user_defined_foreign_key.rb
|
99
|
-
homepage:
|
178
|
+
homepage: https://github.com/brendon/acts_as_list
|
100
179
|
licenses:
|
101
180
|
- MIT
|
102
181
|
metadata:
|
103
182
|
changelog_uri: https://github.com/brendon/acts_as_list/blob/master/CHANGELOG.md
|
104
183
|
source_code_uri: https://github.com/brendon/acts_as_list
|
105
184
|
bug_tracker_uri: https://github.com/brendon/acts_as_list/issues
|
106
|
-
post_install_message:
|
185
|
+
post_install_message:
|
107
186
|
rdoc_options: []
|
108
187
|
require_paths:
|
109
188
|
- lib
|
@@ -118,13 +197,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
197
|
- !ruby/object:Gem::Version
|
119
198
|
version: '0'
|
120
199
|
requirements: []
|
121
|
-
rubygems_version: 3.
|
122
|
-
signing_key:
|
200
|
+
rubygems_version: 3.3.7
|
201
|
+
signing_key:
|
123
202
|
specification_version: 4
|
124
203
|
summary: A gem adding sorting, reordering capabilities to an active_record model,
|
125
204
|
allowing it to act as a list
|
126
205
|
test_files:
|
127
|
-
- test/database.yml
|
128
206
|
- test/helper.rb
|
129
207
|
- test/shared.rb
|
130
208
|
- test/shared_array_scope_list.rb
|
@@ -134,6 +212,8 @@ test_files:
|
|
134
212
|
- test/shared_quoting.rb
|
135
213
|
- test/shared_top_addition.rb
|
136
214
|
- test/shared_zero_based.rb
|
215
|
+
- test/support/ci_database.yml
|
216
|
+
- test/support/database.yml
|
137
217
|
- test/test_default_scope_with_select.rb
|
138
218
|
- test/test_joined_list.rb
|
139
219
|
- test/test_list.rb
|
data/.travis.yml
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
sudo: false
|
4
|
-
before_script:
|
5
|
-
- gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
|
6
|
-
- gem install bundler -v '< 2'
|
7
|
-
- mysql -e 'create database acts_as_list;'
|
8
|
-
- psql -c 'create database acts_as_list;' -U postgres
|
9
|
-
rvm:
|
10
|
-
- 2.4
|
11
|
-
- 2.5
|
12
|
-
- 2.6
|
13
|
-
- 2.7
|
14
|
-
- 3.0
|
15
|
-
services:
|
16
|
-
- mysql
|
17
|
-
- postgresql
|
18
|
-
env:
|
19
|
-
- DB=sqlite
|
20
|
-
- DB=mysql
|
21
|
-
- DB=postgresql
|
22
|
-
gemfile:
|
23
|
-
- gemfiles/rails_4_2.gemfile
|
24
|
-
- gemfiles/rails_5_0.gemfile
|
25
|
-
- gemfiles/rails_5_1.gemfile
|
26
|
-
- gemfiles/rails_5_2.gemfile
|
27
|
-
- gemfiles/rails_6_0.gemfile
|
28
|
-
- gemfiles/rails_6_1.gemfile
|
29
|
-
matrix:
|
30
|
-
exclude:
|
31
|
-
- rvm: 2.4
|
32
|
-
gemfile: gemfiles/rails_6_0.gemfile
|
33
|
-
- rvm: 2.4
|
34
|
-
gemfile: gemfiles/rails_6_1.gemfile
|
35
|
-
# Ruby 2.7 uses a `bigdecimal` version that doesn't support BigDecimal.new
|
36
|
-
# that Rails 4.2 uses. See also:
|
37
|
-
# https://github.com/ruby/bigdecimal#which-version-should-you-select
|
38
|
-
- rvm: 2.7
|
39
|
-
gemfile: gemfiles/rails_4_2.gemfile
|
40
|
-
# Ruby 2.7 warning `sqlite3-1.3.13/lib/sqlite3/statement.rb:108: warning: rb_tainted_str_new is deprecated`
|
41
|
-
# and job wil exceed the maximum log length
|
42
|
-
# see also: https://github.com/sparklemotion/sqlite3-ruby/issues/276
|
43
|
-
- rvm: 2.7
|
44
|
-
gemfile: gemfiles/rails_5_0.gemfile
|
45
|
-
env: DB=sqlite
|
46
|
-
# Rails <6 does not support Ruby 3, see:
|
47
|
-
# https://github.com/rails/rails/issues/40938#issuecomment-751898275
|
48
|
-
- rvm: 3.0
|
49
|
-
gemfile: gemfiles/rails_4_2.gemfile
|
50
|
-
- rvm: 3.0
|
51
|
-
gemfile: gemfiles/rails_5_0.gemfile
|
52
|
-
- rvm: 3.0
|
53
|
-
gemfile: gemfiles/rails_5_1.gemfile
|
54
|
-
- rvm: 3.0
|
55
|
-
gemfile: gemfiles/rails_5_2.gemfile
|
data/Appraisals
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
appraise "rails-4-2" do
|
2
|
-
group :mysql do
|
3
|
-
gem "mysql2", "~> 0.4.0"
|
4
|
-
end
|
5
|
-
group :postgresql do
|
6
|
-
gem "pg", "~> 0.18.4"
|
7
|
-
end
|
8
|
-
group :test do
|
9
|
-
gem "test_after_commit", "~> 0.4.2"
|
10
|
-
end
|
11
|
-
group :sqlite do
|
12
|
-
gem "sqlite3", "~> 1.3.13"
|
13
|
-
end
|
14
|
-
|
15
|
-
gem "activerecord", "~> 4.2.0"
|
16
|
-
end
|
17
|
-
|
18
|
-
appraise "rails-5-0" do
|
19
|
-
group :sqlite do
|
20
|
-
gem "sqlite3", "~> 1.3.13"
|
21
|
-
end
|
22
|
-
|
23
|
-
gem "activerecord", "~> 5.0.0"
|
24
|
-
end
|
25
|
-
|
26
|
-
appraise "rails-5-1" do
|
27
|
-
gem "activerecord", "~> 5.1.0"
|
28
|
-
end
|
29
|
-
|
30
|
-
appraise "rails-5-2" do
|
31
|
-
gem "activerecord", "~> 5.2.0"
|
32
|
-
end
|
33
|
-
|
34
|
-
appraise "rails-6-0" do
|
35
|
-
gem "activerecord", "~> 6.0.0"
|
36
|
-
end
|
37
|
-
|
38
|
-
appraise "rails-6-1" do
|
39
|
-
gem "activerecord", "6.1.0.rc1"
|
40
|
-
end
|
data/gemfiles/rails_4_2.gemfile
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "http://rubygems.org"
|
4
|
-
|
5
|
-
gem "rake"
|
6
|
-
gem "appraisal"
|
7
|
-
gem "activerecord", "~> 4.2.0"
|
8
|
-
|
9
|
-
group :development do
|
10
|
-
gem "github_changelog_generator", "1.9.0"
|
11
|
-
end
|
12
|
-
|
13
|
-
group :test do
|
14
|
-
gem "minitest", "~> 5.0"
|
15
|
-
gem "timecop"
|
16
|
-
gem "mocha"
|
17
|
-
gem "test_after_commit", "~> 0.4.2"
|
18
|
-
end
|
19
|
-
|
20
|
-
group :sqlite do
|
21
|
-
gem "sqlite3", "~> 1.3.13"
|
22
|
-
end
|
23
|
-
|
24
|
-
group :postgresql do
|
25
|
-
gem "pg", "~> 0.18.4"
|
26
|
-
end
|
27
|
-
|
28
|
-
group :mysql do
|
29
|
-
gem "mysql2", "~> 0.4.0"
|
30
|
-
end
|
31
|
-
|
32
|
-
gemspec path: "../"
|
data/gemfiles/rails_5_0.gemfile
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "http://rubygems.org"
|
4
|
-
|
5
|
-
gem "rake"
|
6
|
-
gem "appraisal"
|
7
|
-
gem "activerecord", "~> 5.0.0"
|
8
|
-
|
9
|
-
group :development do
|
10
|
-
gem "github_changelog_generator", "1.9.0"
|
11
|
-
end
|
12
|
-
|
13
|
-
group :test do
|
14
|
-
gem "minitest", "~> 5.0"
|
15
|
-
gem "timecop"
|
16
|
-
gem "mocha"
|
17
|
-
end
|
18
|
-
|
19
|
-
group :sqlite do
|
20
|
-
gem "sqlite3", "~> 1.3.13"
|
21
|
-
end
|
22
|
-
|
23
|
-
group :postgresql do
|
24
|
-
gem "pg", "~> 1.2.0"
|
25
|
-
end
|
26
|
-
|
27
|
-
group :mysql do
|
28
|
-
gem "mysql2", "~> 0.5.0"
|
29
|
-
end
|
30
|
-
|
31
|
-
gemspec path: "../"
|
data/gemfiles/rails_5_1.gemfile
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "http://rubygems.org"
|
4
|
-
|
5
|
-
gem "rake"
|
6
|
-
gem "appraisal"
|
7
|
-
gem "activerecord", "~> 5.1.0"
|
8
|
-
|
9
|
-
group :development do
|
10
|
-
gem "github_changelog_generator", "1.9.0"
|
11
|
-
end
|
12
|
-
|
13
|
-
group :test do
|
14
|
-
gem "minitest", "~> 5.0"
|
15
|
-
gem "timecop"
|
16
|
-
gem "mocha"
|
17
|
-
end
|
18
|
-
|
19
|
-
group :sqlite do
|
20
|
-
gem "sqlite3", "~> 1.4"
|
21
|
-
end
|
22
|
-
|
23
|
-
group :postgresql do
|
24
|
-
gem "pg", "~> 1.2.0"
|
25
|
-
end
|
26
|
-
|
27
|
-
group :mysql do
|
28
|
-
gem "mysql2", "~> 0.5.0"
|
29
|
-
end
|
30
|
-
|
31
|
-
gemspec path: "../"
|
data/gemfiles/rails_5_2.gemfile
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "http://rubygems.org"
|
4
|
-
|
5
|
-
gem "rake"
|
6
|
-
gem "appraisal"
|
7
|
-
gem "activerecord", "~> 5.2.0"
|
8
|
-
|
9
|
-
group :development do
|
10
|
-
gem "github_changelog_generator", "1.9.0"
|
11
|
-
end
|
12
|
-
|
13
|
-
group :test do
|
14
|
-
gem "minitest", "~> 5.0"
|
15
|
-
gem "timecop"
|
16
|
-
gem "mocha"
|
17
|
-
end
|
18
|
-
|
19
|
-
group :sqlite do
|
20
|
-
gem "sqlite3", "~> 1.4"
|
21
|
-
end
|
22
|
-
|
23
|
-
group :postgresql do
|
24
|
-
gem "pg", "~> 1.2.0"
|
25
|
-
end
|
26
|
-
|
27
|
-
group :mysql do
|
28
|
-
gem "mysql2", "~> 0.5.0"
|
29
|
-
end
|
30
|
-
|
31
|
-
gemspec path: "../"
|
data/gemfiles/rails_6_0.gemfile
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "http://rubygems.org"
|
4
|
-
|
5
|
-
gem "rake"
|
6
|
-
gem "appraisal"
|
7
|
-
gem "activerecord", "~> 6.0.0"
|
8
|
-
|
9
|
-
group :development do
|
10
|
-
gem "github_changelog_generator", "1.9.0"
|
11
|
-
end
|
12
|
-
|
13
|
-
group :test do
|
14
|
-
gem "minitest", "~> 5.0"
|
15
|
-
gem "timecop"
|
16
|
-
gem "mocha"
|
17
|
-
end
|
18
|
-
|
19
|
-
group :sqlite do
|
20
|
-
gem "sqlite3", "~> 1.4"
|
21
|
-
end
|
22
|
-
|
23
|
-
group :postgresql do
|
24
|
-
gem "pg", "~> 1.2.0"
|
25
|
-
end
|
26
|
-
|
27
|
-
group :mysql do
|
28
|
-
gem "mysql2", "~> 0.5.0"
|
29
|
-
end
|
30
|
-
|
31
|
-
gemspec path: "../"
|