acts_as_list 0.7.4 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.github/FUNDING.yml +3 -0
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/ci.yml +123 -0
- data/.gitignore +1 -0
- data/.travis.yml +50 -12
- data/Appraisals +39 -6
- data/CHANGELOG.md +565 -148
- data/Gemfile +19 -14
- data/README.md +206 -19
- data/Rakefile +4 -4
- data/acts_as_list.gemspec +16 -11
- data/gemfiles/rails_4_2.gemfile +18 -9
- data/gemfiles/rails_5_0.gemfile +31 -0
- data/gemfiles/rails_5_1.gemfile +31 -0
- data/gemfiles/rails_5_2.gemfile +31 -0
- data/gemfiles/rails_6_0.gemfile +31 -0
- data/gemfiles/rails_6_1.gemfile +31 -0
- data/gemfiles/rails_7_0.gemfile +31 -0
- data/init.rb +2 -0
- data/lib/acts_as_list/active_record/acts/active_record.rb +5 -0
- data/lib/acts_as_list/active_record/acts/add_new_at_method_definer.rb +11 -0
- data/lib/acts_as_list/active_record/acts/aux_method_definer.rb +11 -0
- data/lib/acts_as_list/active_record/acts/callback_definer.rb +19 -0
- data/lib/acts_as_list/active_record/acts/list.rb +299 -306
- data/lib/acts_as_list/active_record/acts/no_update.rb +125 -0
- data/lib/acts_as_list/active_record/acts/position_column_method_definer.rb +101 -0
- data/lib/acts_as_list/active_record/acts/scope_method_definer.rb +77 -0
- data/lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb +28 -0
- data/lib/acts_as_list/active_record/acts/top_of_list_method_definer.rb +15 -0
- data/lib/acts_as_list/version.rb +3 -1
- data/lib/acts_as_list.rb +11 -14
- data/test/database.yml +18 -0
- data/test/helper.rb +50 -2
- data/test/shared.rb +3 -0
- data/test/shared_array_scope_list.rb +21 -4
- data/test/shared_list.rb +86 -12
- data/test/shared_list_sub.rb +63 -2
- data/test/shared_no_addition.rb +50 -2
- data/test/shared_quoting.rb +23 -0
- data/test/shared_top_addition.rb +36 -13
- data/test/shared_zero_based.rb +13 -0
- data/test/test_default_scope_with_select.rb +33 -0
- data/test/test_joined_list.rb +61 -0
- data/test/test_list.rb +601 -84
- data/test/test_no_update_for_extra_classes.rb +131 -0
- data/test/test_no_update_for_scope_destruction.rb +69 -0
- data/test/test_no_update_for_subclasses.rb +56 -0
- data/test/test_scope_with_user_defined_foreign_key.rb +42 -0
- metadata +56 -22
- data/gemfiles/rails_3_2.gemfile +0 -24
- data/gemfiles/rails_4_1.gemfile +0 -24
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
OThlMWNiYjU3MGRmMGQzNjA5NzQ1MDk1MzdiYTg1MGFjODJlNDJmYQ==
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ece77b4a7a9c6c50d1d7a188c91c6dedd4c1dba4c8ece714c2922b339c3b5490
|
4
|
+
data.tar.gz: e7d925c76332e504d6a3db3706c4362b962d5bef2f9c882023bef99a0763e2d1
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NmY4Y2FjY2U4YjczNjliZjFmYzYwYmMzYTNlNTA2MjU4NmVlODFmMzg1NGY0
|
11
|
-
OWNkN2Y4MGU2ZTM4YjM2YjY0MTZkNjcwMjk0NmQ1YzBkMmNjYjE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
Mzg4NGQwNmY2NjdjN2MxZWIzYWE4MWNiOTlkMTc5NGM5NTRiMzRmY2MwNDVh
|
14
|
-
ODI2YTVhZmUwMzE1OTAwNzA1OWZjMjc3ZGNhZmI1Y2ZmNmU4NmYzNGQ3ZTc1
|
15
|
-
OGUyZDE0NjZkZTVjNmQxZTJhOWUyNjdhOWIwMjJiMTg2YzA2NWI=
|
6
|
+
metadata.gz: 8ca617673d046ef18baab0a51d4e481ac10e7b044c569a9efb201c894be702aec66eb72cbc5364bb85b6374c144990fcc3c367b01cc62e0f431d87b6e41e0f4f
|
7
|
+
data.tar.gz: c1ce411f1aa503b28a837b714db52a4bcb42ae78542183f6641aa0d0f483c9c98b3521a4557554e9de539b12effeee6f901632636d61408e423c55d67287f47b
|
data/.github/FUNDING.yml
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
---
|
2
|
+
name: CI
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
tests:
|
7
|
+
name: Ruby ${{ matrix.ruby }}, ${{ matrix.gemfile }}, DB ${{ matrix.db }}
|
8
|
+
runs-on: ${{ matrix.os }}
|
9
|
+
strategy:
|
10
|
+
fail-fast: false
|
11
|
+
matrix:
|
12
|
+
ruby:
|
13
|
+
- 2.4
|
14
|
+
- 2.5
|
15
|
+
- 2.6
|
16
|
+
- 2.7
|
17
|
+
- '3.0'
|
18
|
+
- 3.1
|
19
|
+
- 3.2
|
20
|
+
gemfile:
|
21
|
+
- gemfiles/rails_4_2.gemfile
|
22
|
+
- gemfiles/rails_5_0.gemfile
|
23
|
+
- gemfiles/rails_5_1.gemfile
|
24
|
+
- gemfiles/rails_5_2.gemfile
|
25
|
+
- gemfiles/rails_6_0.gemfile
|
26
|
+
- gemfiles/rails_6_1.gemfile
|
27
|
+
- gemfiles/rails_7_0.gemfile
|
28
|
+
db:
|
29
|
+
- sqlite
|
30
|
+
- mysql
|
31
|
+
- postgresql
|
32
|
+
exclude:
|
33
|
+
- ruby: 2.4
|
34
|
+
gemfile: gemfiles/rails_6_0.gemfile
|
35
|
+
- ruby: 2.4
|
36
|
+
gemfile: gemfiles/rails_6_1.gemfile
|
37
|
+
- ruby: 2.4
|
38
|
+
gemfile: gemfiles/rails_7_0.gemfile
|
39
|
+
- ruby: 2.5
|
40
|
+
gemfile: gemfiles/rails_7_0.gemfile
|
41
|
+
- ruby: 2.6
|
42
|
+
gemfile: gemfiles/rails_7_0.gemfile
|
43
|
+
- ruby: 2.7
|
44
|
+
gemfile: gemfiles/rails_4_2.gemfile
|
45
|
+
- ruby: 2.7
|
46
|
+
gemfile: gemfiles/rails_5_0.gemfile
|
47
|
+
db: sqlite
|
48
|
+
- ruby: '3.0'
|
49
|
+
gemfile: gemfiles/rails_4_2.gemfile
|
50
|
+
- ruby: '3.0'
|
51
|
+
gemfile: gemfiles/rails_5_0.gemfile
|
52
|
+
- ruby: '3.0'
|
53
|
+
gemfile: gemfiles/rails_5_1.gemfile
|
54
|
+
- ruby: '3.0'
|
55
|
+
gemfile: gemfiles/rails_5_2.gemfile
|
56
|
+
- ruby: 3.1
|
57
|
+
gemfile: gemfiles/rails_4_2.gemfile
|
58
|
+
- ruby: 3.1
|
59
|
+
gemfile: gemfiles/rails_5_0.gemfile
|
60
|
+
- ruby: 3.1
|
61
|
+
gemfile: gemfiles/rails_5_1.gemfile
|
62
|
+
- ruby: 3.1
|
63
|
+
gemfile: gemfiles/rails_5_2.gemfile
|
64
|
+
- ruby: 3.1
|
65
|
+
gemfile: gemfiles/rails_6_0.gemfile
|
66
|
+
- ruby: 3.2
|
67
|
+
gemfile: gemfiles/rails_4_2.gemfile
|
68
|
+
- ruby: 3.2
|
69
|
+
gemfile: gemfiles/rails_5_0.gemfile
|
70
|
+
- ruby: 3.2
|
71
|
+
gemfile: gemfiles/rails_5_1.gemfile
|
72
|
+
- ruby: 3.2
|
73
|
+
gemfile: gemfiles/rails_5_2.gemfile
|
74
|
+
- ruby: 3.2
|
75
|
+
gemfile: gemfiles/rails_6_0.gemfile
|
76
|
+
- ruby: 3.2
|
77
|
+
gemfile: gemfiles/rails_6_1.gemfile
|
78
|
+
os:
|
79
|
+
- ubuntu-latest
|
80
|
+
services:
|
81
|
+
mysql:
|
82
|
+
image: mysql:5.7
|
83
|
+
env:
|
84
|
+
MYSQL_ALLOW_EMPTY_PASSWORD: yes
|
85
|
+
ports:
|
86
|
+
- 3306:3306
|
87
|
+
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
88
|
+
|
89
|
+
postgres:
|
90
|
+
# Docker Hub image
|
91
|
+
image: postgres
|
92
|
+
# Provide the password for postgres
|
93
|
+
env:
|
94
|
+
POSTGRES_USER: postgres
|
95
|
+
POSTGRES_HOST_AUTH_METHOD: trust
|
96
|
+
ports:
|
97
|
+
- 5432:5432
|
98
|
+
# Set health checks to wait until postgres has started
|
99
|
+
options: >-
|
100
|
+
--health-cmd pg_isready
|
101
|
+
--health-interval 10s
|
102
|
+
--health-timeout 5s
|
103
|
+
--health-retries 5
|
104
|
+
env:
|
105
|
+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
106
|
+
DB: ${{ matrix.db }}
|
107
|
+
steps:
|
108
|
+
- uses: actions/checkout@v3
|
109
|
+
- name: Set up Ruby
|
110
|
+
uses: ruby/setup-ruby@v1
|
111
|
+
with:
|
112
|
+
ruby-version: ${{ matrix.ruby }}
|
113
|
+
bundler-cache: true
|
114
|
+
- name: "Create MySQL database"
|
115
|
+
if: ${{ env.DB == 'mysql' }}
|
116
|
+
run: |
|
117
|
+
mysql -h 127.0.0.1 -u root -e 'create database acts_as_list;'
|
118
|
+
- name: "Create PostgreSQL database"
|
119
|
+
if: ${{ env.DB == 'postgresql' }}
|
120
|
+
run: |
|
121
|
+
psql -c 'create database acts_as_list;' -h localhost -U postgres
|
122
|
+
- name: Run tests
|
123
|
+
run: bundle exec rake
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,17 +1,55 @@
|
|
1
1
|
language: ruby
|
2
|
-
|
3
|
-
# see https://docs.travis-ci.com/user/workers/container-based-infrastructure/
|
4
|
-
# and https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments
|
2
|
+
cache: bundler
|
5
3
|
sudo: false
|
6
|
-
|
7
|
-
- gem
|
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
|
8
9
|
rvm:
|
9
|
-
-
|
10
|
-
- 2.
|
11
|
-
- 2.
|
12
|
-
-
|
13
|
-
-
|
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
|
14
22
|
gemfile:
|
15
|
-
- gemfiles/rails_3_2.gemfile
|
16
|
-
- gemfiles/rails_4_1.gemfile
|
17
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
CHANGED
@@ -1,11 +1,44 @@
|
|
1
|
-
appraise "rails-
|
2
|
-
|
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"
|
3
24
|
end
|
4
25
|
|
5
|
-
appraise "rails-
|
6
|
-
gem "activerecord", "~>
|
26
|
+
appraise "rails-5-1" do
|
27
|
+
gem "activerecord", "~> 5.1.0"
|
7
28
|
end
|
8
29
|
|
9
|
-
appraise "rails-
|
10
|
-
gem "activerecord", "~>
|
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"
|
40
|
+
end
|
41
|
+
|
42
|
+
appraise "rails-7-0" do
|
43
|
+
gem "activerecord", "~> 7.0.0"
|
11
44
|
end
|