acts_as_list 0.9.10 → 0.9.11

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +20 -13
  3. data/Appraisals +25 -3
  4. data/CHANGELOG.md +7 -3
  5. data/Gemfile +1 -8
  6. data/Rakefile +3 -3
  7. data/gemfiles/rails_3_2.gemfile +5 -8
  8. data/gemfiles/rails_4_1.gemfile +5 -8
  9. data/gemfiles/rails_4_2.gemfile +6 -9
  10. data/gemfiles/rails_5_0.gemfile +6 -9
  11. data/gemfiles/rails_5_1.gemfile +6 -9
  12. data/gemfiles/rails_5_2.gemfile +30 -0
  13. data/init.rb +2 -0
  14. data/lib/acts_as_list.rb +2 -0
  15. data/lib/acts_as_list/active_record/acts/active_record.rb +2 -0
  16. data/lib/acts_as_list/active_record/acts/add_new_at_method_definer.rb +2 -0
  17. data/lib/acts_as_list/active_record/acts/aux_method_definer.rb +2 -0
  18. data/lib/acts_as_list/active_record/acts/callback_definer.rb +2 -0
  19. data/lib/acts_as_list/active_record/acts/list.rb +15 -5
  20. data/lib/acts_as_list/active_record/acts/no_update.rb +2 -0
  21. data/lib/acts_as_list/active_record/acts/position_column_method_definer.rb +3 -1
  22. data/lib/acts_as_list/active_record/acts/scope_method_definer.rb +2 -0
  23. data/lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb +2 -0
  24. data/lib/acts_as_list/active_record/acts/top_of_list_method_definer.rb +2 -0
  25. data/lib/acts_as_list/version.rb +3 -1
  26. data/test/helper.rb +2 -0
  27. data/test/shared.rb +2 -0
  28. data/test/shared_array_scope_list.rb +2 -0
  29. data/test/shared_list.rb +2 -0
  30. data/test/shared_list_sub.rb +2 -0
  31. data/test/shared_no_addition.rb +2 -0
  32. data/test/shared_quoting.rb +2 -0
  33. data/test/shared_top_addition.rb +2 -0
  34. data/test/shared_zero_based.rb +2 -0
  35. data/test/test_joined_list.rb +2 -0
  36. data/test/test_list.rb +2 -0
  37. data/test/test_no_update_for_extra_classes.rb +2 -0
  38. data/test/test_no_update_for_scope_destruction.rb +3 -1
  39. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6a5fd4ed86fc8761d3281f89b396aa5062d2efae
4
- data.tar.gz: 5caf258018d36923b25c1cf4b21829b506de2feb
3
+ metadata.gz: e015505781243b63ca79d1bcc84df12709f397a6
4
+ data.tar.gz: 3136ff3f5e771a5bcc6c298d3a26d3a66f2160a6
5
5
  SHA512:
6
- metadata.gz: 206f7896be7a435f3330af74f2737256c1fd30a2a54ecd7900e369bec037e8a0317a14771d1cfe80405852a42bb6cd7570b518c9d43d98e18fc983b692a3f475
7
- data.tar.gz: de4fd257055e8aa86e6bbf1c0aa5d9358b91592465cba7a44661219a916f94a68555b02dd33718a3a2e69e3b79f1533020317ad00043ce77f4bf071c72f57f65
6
+ metadata.gz: e0b1f462cf3a207ef0e6cf6de20ca598d1bf718ad6b3349422a753c030331f1ab5a0e9120ad3b79e0c8515efda7b5526942ebe8ce57aa60c15846967dc67930b
7
+ data.tar.gz: 5c04d991727e00db36d9149c9a8d3d58074198dd57378f7608e75514be86e28e143d96b0e9f8a4b738df7ae3f9ee217879b56e06a40433de8963363a6ff08255
data/.travis.yml CHANGED
@@ -5,18 +5,18 @@ cache: bundler
5
5
  # and https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments
6
6
  sudo: false
7
7
  before_install:
8
- - gem install bundler -v 1.13.7
8
+ - gem install bundler -v 1.16.1
9
9
  before_script:
10
10
  - mysql -e 'create database acts_as_list;'
11
11
  - psql -c 'create database acts_as_list;' -U postgres
12
12
  rvm:
13
13
  - 1.9.3
14
14
  - 2.0.0
15
- - 2.1.9
15
+ - 2.1.10
16
16
  - 2.2.6
17
- - 2.3.3
18
- - 2.4.0
19
- - jruby-19mode
17
+ - 2.3.6
18
+ - 2.4.3
19
+ - 2.5.0
20
20
  env:
21
21
  - DB=sqlite
22
22
  - DB=mysql
@@ -27,25 +27,32 @@ gemfile:
27
27
  - gemfiles/rails_4_2.gemfile
28
28
  - gemfiles/rails_5_0.gemfile
29
29
  - gemfiles/rails_5_1.gemfile
30
+ - gemfiles/rails_5_2.gemfile
30
31
  matrix:
31
32
  exclude:
32
33
  - rvm: 1.9.3
33
34
  gemfile: gemfiles/rails_5_0.gemfile
34
35
  - rvm: 1.9.3
35
36
  gemfile: gemfiles/rails_5_1.gemfile
37
+ - rvm: 1.9.3
38
+ gemfile: gemfiles/rails_5_2.gemfile
36
39
  - rvm: 2.0.0
37
40
  gemfile: gemfiles/rails_5_0.gemfile
38
41
  - rvm: 2.0.0
39
42
  gemfile: gemfiles/rails_5_1.gemfile
40
- - rvm: 2.1.9
43
+ - rvm: 2.0.0
44
+ gemfile: gemfiles/rails_5_2.gemfile
45
+ - rvm: 2.1.10
41
46
  gemfile: gemfiles/rails_5_0.gemfile
42
- - rvm: 2.1.9
47
+ - rvm: 2.1.10
43
48
  gemfile: gemfiles/rails_5_1.gemfile
44
- - rvm: 2.4.0
49
+ - rvm: 2.1.10
50
+ gemfile: gemfiles/rails_5_2.gemfile
51
+ - rvm: 2.4.3
45
52
  gemfile: gemfiles/rails_3_2.gemfile
46
- - rvm: 2.4.0
53
+ - rvm: 2.4.3
54
+ gemfile: gemfiles/rails_4_1.gemfile
55
+ - rvm: 2.5.0
56
+ gemfile: gemfiles/rails_3_2.gemfile
57
+ - rvm: 2.5.0
47
58
  gemfile: gemfiles/rails_4_1.gemfile
48
- - rvm: jruby-19mode
49
- gemfile: gemfiles/rails_5_0.gemfile
50
- - rvm: jruby-19mode
51
- gemfile: gemfiles/rails_5_1.gemfile
data/Appraisals CHANGED
@@ -1,4 +1,7 @@
1
1
  appraise "rails-3-2" do
2
+ group :mysql do
3
+ gem "mysql2", "~> 0.3.21", platforms: [:ruby]
4
+ end
2
5
  gem "activerecord", "~> 3.2.22.2"
3
6
  group :test do
4
7
  gem "after_commit_exception_notification"
@@ -6,6 +9,9 @@ appraise "rails-3-2" do
6
9
  end
7
10
 
8
11
  appraise "rails-4-1" do
12
+ group :mysql do
13
+ gem "mysql2", "~> 0.3.21", platforms: [:ruby]
14
+ end
9
15
  gem "activerecord", "~> 4.1.16"
10
16
  group :test do
11
17
  gem "after_commit_exception_notification"
@@ -13,13 +19,29 @@ appraise "rails-4-1" do
13
19
  end
14
20
 
15
21
  appraise "rails-4-2" do
16
- gem "activerecord", "~> 4.2.7"
22
+ group :mysql do
23
+ gem "mysql2", "~> 0.4.10", platforms: [:ruby]
24
+ end
25
+ gem "activerecord", "~> 4.2.10"
17
26
  end
18
27
 
19
28
  appraise "rails-5-0" do
20
- gem "activerecord", "~> 5.0.0"
29
+ group :mysql do
30
+ gem "mysql2", "~> 0.4.10", platforms: [:ruby]
31
+ end
32
+ gem "activerecord", "~> 5.0.6"
21
33
  end
22
34
 
23
35
  appraise "rails-5-1" do
24
- gem "activerecord", "~> 5.1.0.beta1"
36
+ group :mysql do
37
+ gem "mysql2", "~> 0.4.10", platforms: [:ruby]
38
+ end
39
+ gem "activerecord", "~> 5.1.4"
40
+ end
41
+
42
+ appraise "rails-5-2" do
43
+ group :mysql do
44
+ gem "mysql2", "~> 0.4.10", platforms: [:ruby]
45
+ end
46
+ gem "activerecord", "~> 5.2.0.rc1"
25
47
  end
data/CHANGELOG.md CHANGED
@@ -1,13 +1,17 @@
1
1
  # Change Log
2
2
 
3
- ## [Unreleased](https://github.com/swanandp/acts_as_list/tree/HEAD)
4
-
5
- [Full Changelog](https://github.com/swanandp/acts_as_list/compare/v0.9.9...HEAD)
3
+ ## [v0.9.10](https://github.com/swanandp/acts_as_list/tree/v0.9.10) (2017-11-19)
4
+ [Full Changelog](https://github.com/swanandp/acts_as_list/compare/v0.9.9...v0.9.10)
6
5
 
7
6
  **Closed issues:**
8
7
 
8
+ - Make insert\_at respect position when creating a new record [\#287](https://github.com/swanandp/acts_as_list/issues/287)
9
9
  - Why does acts\_as\_list override rails validation on it's own field? [\#269](https://github.com/swanandp/acts_as_list/issues/269)
10
10
 
11
+ **Merged pull requests:**
12
+
13
+ - Change error classes parents [\#288](https://github.com/swanandp/acts_as_list/pull/288) ([alexander-lazarov](https://github.com/alexander-lazarov))
14
+
11
15
  ## [v0.9.9](https://github.com/swanandp/acts_as_list/tree/v0.9.9) (2017-10-03)
12
16
  [Full Changelog](https://github.com/swanandp/acts_as_list/compare/v0.9.8...v0.9.9)
13
17
 
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "rack", "~> 1", platforms: [:ruby_19, :ruby_20, :ruby_21, :jruby]
3
+ gem "rack", "~> 1", platforms: [:ruby_19, :ruby_20, :ruby_21]
4
4
 
5
5
  gemspec
6
6
 
@@ -17,15 +17,8 @@ end
17
17
 
18
18
  group :sqlite do
19
19
  gem "sqlite3", platforms: [:ruby]
20
- gem "activerecord-jdbcsqlite3-adapter", platforms: [:jruby]
21
20
  end
22
21
 
23
22
  group :postgresql do
24
23
  gem "pg", "~> 0.18.0", platforms: [:ruby]
25
- gem "activerecord-jdbcpostgresql-adapter", platforms: [:jruby]
26
- end
27
-
28
- group :mysql do
29
- gem "mysql2", "~> 0.3.10", platforms: [:ruby]
30
- gem "activerecord-jdbcmysql-adapter", platforms: [:jruby]
31
24
  end
data/Rakefile CHANGED
@@ -10,8 +10,8 @@ task default: :test
10
10
 
11
11
  desc "Test the acts_as_list plugin."
12
12
  Rake::TestTask.new(:test) do |t|
13
- t.libs << "lib" << "test"
14
- t.pattern = "test/**/test_*.rb"
13
+ t.libs << "test" << "."
14
+ t.test_files = Rake::FileList["test/**/test_*.rb"]
15
15
  t.verbose = false
16
16
  end
17
17
 
@@ -39,4 +39,4 @@ require 'github_changelog_generator/task'
39
39
  GitHubChangelogGenerator::RakeTask.new :changelog do |config|
40
40
  config.project = 'acts_as_list'
41
41
  config.user = 'swanandp'
42
- end
42
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "http://rubygems.org"
4
4
 
5
- gem "rack", "~> 1", :platforms => [:ruby_19, :ruby_20, :ruby_21, :jruby]
5
+ gem "rack", "~> 1", platforms: [:ruby_19, :ruby_20, :ruby_21]
6
6
  gem "rake"
7
7
  gem "appraisal"
8
8
  gem "github_changelog_generator", "1.9.0"
@@ -17,18 +17,15 @@ group :test do
17
17
  end
18
18
 
19
19
  group :sqlite do
20
- gem "sqlite3", :platforms => [:ruby]
21
- gem "activerecord-jdbcsqlite3-adapter", :platforms => [:jruby]
20
+ gem "sqlite3", platforms: [:ruby]
22
21
  end
23
22
 
24
23
  group :postgresql do
25
- gem "pg", "~> 0.18.0", :platforms => [:ruby]
26
- gem "activerecord-jdbcpostgresql-adapter", :platforms => [:jruby]
24
+ gem "pg", "~> 0.18.0", platforms: [:ruby]
27
25
  end
28
26
 
29
27
  group :mysql do
30
- gem "mysql2", "~> 0.3.10", :platforms => [:ruby]
31
- gem "activerecord-jdbcmysql-adapter", :platforms => [:jruby]
28
+ gem "mysql2", "~> 0.3.21", platforms: [:ruby]
32
29
  end
33
30
 
34
- gemspec :path => "../"
31
+ gemspec path: "../"
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "http://rubygems.org"
4
4
 
5
- gem "rack", "~> 1", :platforms => [:ruby_19, :ruby_20, :ruby_21, :jruby]
5
+ gem "rack", "~> 1", platforms: [:ruby_19, :ruby_20, :ruby_21]
6
6
  gem "rake"
7
7
  gem "appraisal"
8
8
  gem "github_changelog_generator", "1.9.0"
@@ -17,18 +17,15 @@ group :test do
17
17
  end
18
18
 
19
19
  group :sqlite do
20
- gem "sqlite3", :platforms => [:ruby]
21
- gem "activerecord-jdbcsqlite3-adapter", :platforms => [:jruby]
20
+ gem "sqlite3", platforms: [:ruby]
22
21
  end
23
22
 
24
23
  group :postgresql do
25
- gem "pg", "~> 0.18.0", :platforms => [:ruby]
26
- gem "activerecord-jdbcpostgresql-adapter", :platforms => [:jruby]
24
+ gem "pg", "~> 0.18.0", platforms: [:ruby]
27
25
  end
28
26
 
29
27
  group :mysql do
30
- gem "mysql2", "~> 0.3.10", :platforms => [:ruby]
31
- gem "activerecord-jdbcmysql-adapter", :platforms => [:jruby]
28
+ gem "mysql2", "~> 0.3.21", platforms: [:ruby]
32
29
  end
33
30
 
34
- gemspec :path => "../"
31
+ gemspec path: "../"
@@ -2,11 +2,11 @@
2
2
 
3
3
  source "http://rubygems.org"
4
4
 
5
- gem "rack", "~> 1", :platforms => [:ruby_19, :ruby_20, :ruby_21, :jruby]
5
+ gem "rack", "~> 1", platforms: [:ruby_19, :ruby_20, :ruby_21]
6
6
  gem "rake"
7
7
  gem "appraisal"
8
8
  gem "github_changelog_generator", "1.9.0"
9
- gem "activerecord", "~> 4.2.7"
9
+ gem "activerecord", "~> 4.2.10"
10
10
 
11
11
  group :test do
12
12
  gem "minitest", "~> 5.0"
@@ -16,18 +16,15 @@ group :test do
16
16
  end
17
17
 
18
18
  group :sqlite do
19
- gem "sqlite3", :platforms => [:ruby]
20
- gem "activerecord-jdbcsqlite3-adapter", :platforms => [:jruby]
19
+ gem "sqlite3", platforms: [:ruby]
21
20
  end
22
21
 
23
22
  group :postgresql do
24
- gem "pg", "~> 0.18.0", :platforms => [:ruby]
25
- gem "activerecord-jdbcpostgresql-adapter", :platforms => [:jruby]
23
+ gem "pg", "~> 0.18.0", platforms: [:ruby]
26
24
  end
27
25
 
28
26
  group :mysql do
29
- gem "mysql2", "~> 0.3.10", :platforms => [:ruby]
30
- gem "activerecord-jdbcmysql-adapter", :platforms => [:jruby]
27
+ gem "mysql2", "~> 0.4.10", platforms: [:ruby]
31
28
  end
32
29
 
33
- gemspec :path => "../"
30
+ gemspec path: "../"
@@ -2,11 +2,11 @@
2
2
 
3
3
  source "http://rubygems.org"
4
4
 
5
- gem "rack", "~> 1", :platforms => [:ruby_19, :ruby_20, :ruby_21, :jruby]
5
+ gem "rack", "~> 1", platforms: [:ruby_19, :ruby_20, :ruby_21]
6
6
  gem "rake"
7
7
  gem "appraisal"
8
8
  gem "github_changelog_generator", "1.9.0"
9
- gem "activerecord", "~> 5.0.0"
9
+ gem "activerecord", "~> 5.0.6"
10
10
 
11
11
  group :test do
12
12
  gem "minitest", "~> 5.0"
@@ -16,18 +16,15 @@ group :test do
16
16
  end
17
17
 
18
18
  group :sqlite do
19
- gem "sqlite3", :platforms => [:ruby]
20
- gem "activerecord-jdbcsqlite3-adapter", :platforms => [:jruby]
19
+ gem "sqlite3", platforms: [:ruby]
21
20
  end
22
21
 
23
22
  group :postgresql do
24
- gem "pg", "~> 0.18.0", :platforms => [:ruby]
25
- gem "activerecord-jdbcpostgresql-adapter", :platforms => [:jruby]
23
+ gem "pg", "~> 0.18.0", platforms: [:ruby]
26
24
  end
27
25
 
28
26
  group :mysql do
29
- gem "mysql2", "~> 0.3.10", :platforms => [:ruby]
30
- gem "activerecord-jdbcmysql-adapter", :platforms => [:jruby]
27
+ gem "mysql2", "~> 0.4.10", platforms: [:ruby]
31
28
  end
32
29
 
33
- gemspec :path => "../"
30
+ gemspec path: "../"
@@ -2,11 +2,11 @@
2
2
 
3
3
  source "http://rubygems.org"
4
4
 
5
- gem "rack", "~> 1", :platforms => [:ruby_19, :ruby_20, :ruby_21, :jruby]
5
+ gem "rack", "~> 1", platforms: [:ruby_19, :ruby_20, :ruby_21]
6
6
  gem "rake"
7
7
  gem "appraisal"
8
8
  gem "github_changelog_generator", "1.9.0"
9
- gem "activerecord", "~> 5.1.0.beta1"
9
+ gem "activerecord", "~> 5.1.4"
10
10
 
11
11
  group :test do
12
12
  gem "minitest", "~> 5.0"
@@ -16,18 +16,15 @@ group :test do
16
16
  end
17
17
 
18
18
  group :sqlite do
19
- gem "sqlite3", :platforms => [:ruby]
20
- gem "activerecord-jdbcsqlite3-adapter", :platforms => [:jruby]
19
+ gem "sqlite3", platforms: [:ruby]
21
20
  end
22
21
 
23
22
  group :postgresql do
24
- gem "pg", "~> 0.18.0", :platforms => [:ruby]
25
- gem "activerecord-jdbcpostgresql-adapter", :platforms => [:jruby]
23
+ gem "pg", "~> 0.18.0", platforms: [:ruby]
26
24
  end
27
25
 
28
26
  group :mysql do
29
- gem "mysql2", "~> 0.3.10", :platforms => [:ruby]
30
- gem "activerecord-jdbcmysql-adapter", :platforms => [:jruby]
27
+ gem "mysql2", "~> 0.4.10", platforms: [:ruby]
31
28
  end
32
29
 
33
- gemspec :path => "../"
30
+ gemspec path: "../"
@@ -0,0 +1,30 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "rack", "~> 1", platforms: [:ruby_19, :ruby_20, :ruby_21]
6
+ gem "rake"
7
+ gem "appraisal"
8
+ gem "github_changelog_generator", "1.9.0"
9
+ gem "activerecord", "~> 5.2.0.rc1"
10
+
11
+ group :test do
12
+ gem "minitest", "~> 5.0"
13
+ gem "test_after_commit", "~> 0.4.2"
14
+ gem "timecop"
15
+ gem "mocha"
16
+ end
17
+
18
+ group :sqlite do
19
+ gem "sqlite3", platforms: [:ruby]
20
+ end
21
+
22
+ group :postgresql do
23
+ gem "pg", "~> 0.18.0", platforms: [:ruby]
24
+ end
25
+
26
+ group :mysql do
27
+ gem "mysql2", "~> 0.4.10", platforms: [:ruby]
28
+ end
29
+
30
+ gemspec path: "../"
data/init.rb CHANGED
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  $:.unshift "#{File.dirname(__FILE__)}/lib"
2
4
  require "acts_as_list"
data/lib/acts_as_list.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "acts_as_list/active_record/acts/list"
2
4
  require "acts_as_list/active_record/acts/position_column_method_definer"
3
5
  require "acts_as_list/active_record/acts/scope_method_definer"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ActiveSupport.on_load :active_record do
2
4
  extend ActiveRecord::Acts::List::ClassMethods
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveRecord::Acts::List::AddNewAtMethodDefiner #:nodoc:
2
4
  def self.call(caller_class, add_new_at)
3
5
  caller_class.class_eval do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveRecord::Acts::List::AuxMethodDefiner #:nodoc:
2
4
  def self.call(caller_class)
3
5
  caller_class.class_eval do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveRecord::Acts::List::CallbackDefiner #:nodoc:
2
4
  def self.call(caller_class, add_new_at)
3
5
  caller_class.class_eval do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveRecord
2
4
  module Acts #:nodoc:
3
5
  module List #:nodoc:
@@ -166,7 +168,7 @@ module ActiveRecord
166
168
  acts_as_list_list.
167
169
  where("#{quoted_position_column_with_table_name} <= ?", position_value).
168
170
  where("#{quoted_table_name}.#{self.class.primary_key} != ?", self.send(self.class.primary_key)).
169
- reorder("#{quoted_position_column_with_table_name} DESC").
171
+ reorder(acts_as_list_order_argument(:desc)).
170
172
  limit(limit)
171
173
  end
172
174
 
@@ -184,7 +186,7 @@ module ActiveRecord
184
186
  acts_as_list_list.
185
187
  where("#{quoted_position_column_with_table_name} >= ?", position_value).
186
188
  where("#{quoted_table_name}.#{self.class.primary_key} != ?", self.send(self.class.primary_key)).
187
- reorder("#{quoted_position_column_with_table_name} ASC").
189
+ reorder(acts_as_list_order_argument(:asc)).
188
190
  limit(limit)
189
191
  end
190
192
 
@@ -286,7 +288,7 @@ module ActiveRecord
286
288
  scope = scope.where("#{quoted_table_name}.#{self.class.primary_key} != ?", except.id)
287
289
  end
288
290
 
289
- scope.in_list.reorder("#{quoted_position_column_with_table_name} DESC").first
291
+ scope.in_list.reorder(acts_as_list_order_argument(:desc)).first
290
292
  end
291
293
 
292
294
  # Forces item to assume the bottom position in the list.
@@ -358,7 +360,7 @@ module ActiveRecord
358
360
  )
359
361
 
360
362
  if sequential_updates?
361
- items.reorder("#{quoted_position_column_with_table_name} ASC").each do |item|
363
+ items.reorder(acts_as_list_order_argument(:asc)).each do |item|
362
364
  item.decrement!(position_column)
363
365
  end
364
366
  else
@@ -376,7 +378,7 @@ module ActiveRecord
376
378
  )
377
379
 
378
380
  if sequential_updates?
379
- items.reorder("#{quoted_position_column_with_table_name} DESC").each do |item|
381
+ items.reorder(acts_as_list_order_argument(:desc)).each do |item|
380
382
  item.increment!(position_column)
381
383
  end
382
384
  else
@@ -479,6 +481,14 @@ module ActiveRecord
479
481
  def quoted_position_column_with_table_name
480
482
  @_quoted_position_column_with_table_name ||= "#{quoted_table_name}.#{quoted_position_column}"
481
483
  end
484
+
485
+ def acts_as_list_order_argument(direction = :asc)
486
+ if ActiveRecord::VERSION::MAJOR >= 4
487
+ { position_column => direction }
488
+ else
489
+ "#{quoted_position_column_with_table_name} #{direction.to_s.upcase}"
490
+ end
491
+ end
482
492
  end
483
493
 
484
494
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveRecord
2
4
  module Acts
3
5
  module List
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveRecord::Acts::List::PositionColumnMethodDefiner #:nodoc:
2
4
  def self.call(caller_class, position_column)
3
5
  define_class_methods(caller_class, position_column)
@@ -29,7 +31,7 @@ module ActiveRecord::Acts::List::PositionColumnMethodDefiner #:nodoc:
29
31
  end
30
32
 
31
33
  define_singleton_method :update_all_with_touch do |updates|
32
- update_all(updates << touch_record_sql)
34
+ update_all(updates + touch_record_sql)
33
35
  end
34
36
 
35
37
  private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveRecord::Acts::List::ScopeMethodDefiner #:nodoc:
2
4
  extend ActiveSupport::Inflector
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveRecord::Acts::List::SequentialUpdatesMethodDefiner #:nodoc:
2
4
  def self.call(caller_class, column, sequential_updates_option)
3
5
  caller_class.class_eval do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveRecord::Acts::List::TopOfListMethodDefiner #:nodoc:
2
4
  def self.call(caller_class, top_of_list)
3
5
  caller_class.class_eval do
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveRecord
2
4
  module Acts
3
5
  module List
4
- VERSION = '0.9.10'
6
+ VERSION = '0.9.11'
5
7
  end
6
8
  end
7
9
  end
data/test/helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # $DEBUG = true
2
4
 
3
5
  require "rubygems"
data/test/shared.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Common shared behaviour.
2
4
  module Shared
3
5
  autoload :List, 'shared_list'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Shared
2
4
  module ArrayScopeList
3
5
  def setup
data/test/shared_list.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Shared
2
4
  module List
3
5
  def setup
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Shared
2
4
  module ListSub
3
5
  def setup
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Shared
2
4
  module NoAddition
3
5
  def setup
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Shared
2
4
  module Quoting
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Shared
2
4
  module TopAddition
3
5
  def setup
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Shared
2
4
  module ZeroBased
3
5
  def setup
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'helper'
2
4
 
3
5
  class Section < ActiveRecord::Base
data/test/test_list.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # NOTE: following now done in helper.rb (better Readability)
2
4
  require 'helper'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'helper'
2
4
 
3
5
  class TodoList < ActiveRecord::Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'helper'
2
4
 
3
5
  class DestructionTodoList < ActiveRecord::Base
@@ -69,4 +71,4 @@ class NoUpdateForScopeDestructionTestCase < Minitest::Test
69
71
  end
70
72
 
71
73
  end
72
- end
74
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.10
4
+ version: 0.9.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-11-19 00:00:00.000000000 Z
13
+ date: 2018-03-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -64,6 +64,7 @@ files:
64
64
  - gemfiles/rails_4_2.gemfile
65
65
  - gemfiles/rails_5_0.gemfile
66
66
  - gemfiles/rails_5_1.gemfile
67
+ - gemfiles/rails_5_2.gemfile
67
68
  - init.rb
68
69
  - lib/acts_as_list.rb
69
70
  - lib/acts_as_list/active_record/acts/active_record.rb
@@ -111,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
112
  version: '0'
112
113
  requirements: []
113
114
  rubyforge_project: acts_as_list
114
- rubygems_version: 2.4.5
115
+ rubygems_version: 2.5.2.2
115
116
  signing_key:
116
117
  specification_version: 4
117
118
  summary: A gem adding sorting, reordering capabilities to an active_record model,