ranked-model 0.4.4 → 0.4.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e92bbed2da4ae8cd7a3705fed451fb73a27b6eee
4
- data.tar.gz: da248775ef6a763b5a6342587fd5343c06db9adb
2
+ SHA256:
3
+ metadata.gz: c342543b3341c81d62ceca340fc0966a3386a6115fc2ee36f309582995f8af52
4
+ data.tar.gz: 25408af509201219ce0539dbfe3324c8b3806bce367d3e00b80a2f15dc6e7dc4
5
5
  SHA512:
6
- metadata.gz: 638948178a3dd3c45bdc811e43ea8b5ca2cd8401ae7a74124c97e2cf09d5a68381bcce5e810db1d42b311281a07633cfb69946c0994e8f1a1675fb564501e70b
7
- data.tar.gz: 3d37e0b29d0aac037f6ca3edf7258ffac9b17aefa55f46f472d0789999eddf37e5258ea30969a94d7f1543a95e63bf964d40b0d4c517354f6e64b057f1054cc0
6
+ metadata.gz: 139bcf7c985b68e017e03bb3718a4377ec878ec7b249ac32ad20900d1467e5026a093e82725f8e39e1d8a378a7db0959f6a37f7571d1bccae40e9b8f70244a55
7
+ data.tar.gz: ca739746fb067e6de9ae52bcb08f352fcdf676a02063e04f5d3b5f3b8a54d773ff57227d5dc5fca7c6d402155920b3da39c73d83d495680ff988f67248fac321
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ pkg/*
5
5
 
6
6
  Gemfile.lock
7
7
  *.gemfile.lock
8
+ .ruby-version
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --color
2
+ --warnings
2
3
  --format documentation
@@ -1,49 +1,35 @@
1
- sudo: false # use newer travis infrastructure
2
1
  language: ruby
3
2
  cache: bundler
3
+ sudo: false
4
4
  before_install:
5
- - gem install bundler -v 1.16.1
5
+ - gem update --system
6
+ - gem install bundler
6
7
  before_script:
7
8
  - mysql -e 'create database ranked_model_test;'
8
9
  - psql -c 'create database ranked_model_test;' -U postgres
9
10
  rvm:
10
- - 1.9.3
11
- - 2.1.10
12
- - 2.2.10
13
- - 2.3.7
14
11
  - 2.4.4
15
12
  - 2.5.1
13
+ - 2.6.4
16
14
  - jruby-9.1.17.0
17
- - rbx-3.107
18
15
  env:
19
16
  - DB=sqlite
20
17
  - DB=mysql
21
18
  - DB=postgresql
19
+ services:
20
+ - mysql
21
+ - postgresql
22
22
  gemfile:
23
- - gemfiles/rails_4_1.gemfile
24
23
  - gemfiles/rails_4_2.gemfile
25
24
  - gemfiles/rails_5_0.gemfile
26
25
  - gemfiles/rails_5_1.gemfile
27
26
  - gemfiles/rails_5_2.gemfile
27
+ - gemfiles/rails_6_0.gemfile
28
28
  matrix:
29
29
  exclude:
30
- - rvm: 1.9.3
31
- gemfile: gemfiles/rails_5_0.gemfile
32
- - rvm: 1.9.3
33
- gemfile: gemfiles/rails_5_1.gemfile
34
- - rvm: 1.9.3
35
- gemfile: gemfiles/rails_5_2.gemfile
36
- - rvm: 2.1.10
37
- gemfile: gemfiles/rails_5_0.gemfile
38
- - rvm: 2.1.10
39
- gemfile: gemfiles/rails_5_1.gemfile
40
- - rvm: 2.1.10
41
- gemfile: gemfiles/rails_5_2.gemfile
42
30
  - rvm: jruby-9.1.17.0
43
31
  gemfile: gemfiles/rails_5_2.gemfile
44
32
  - rvm: 2.4.4
45
- gemfile: gemfiles/rails_4_1.gemfile
46
- - rvm: 2.5.1
47
- gemfile: gemfiles/rails_4_1.gemfile
48
- - rvm: rbx-3.107
49
- gemfile: gemfiles/rails_5_2.gemfile
33
+ gemfile: gemfiles/rails_6_0.gemfile
34
+ - rvm: jruby-9.1.17.0
35
+ gemfile: gemfiles/rails_6_0.gemfile
data/Appraisals CHANGED
@@ -1,81 +1,71 @@
1
- appraise "rails-4-1" do
1
+ appraise "rails-4-2" do
2
2
  group :sqlite do
3
- gem "sqlite3", "~> 1.3.13", platform: :ruby
4
3
  gem "activerecord-jdbcsqlite3-adapter", "~> 1.3.24", platform: :jruby
5
4
  end
6
5
  group :mysql do
7
- gem "mysql2", "~> 0.3.21", platform: :ruby
6
+ gem "mysql2", "~> 0.4.0", platform: :ruby
8
7
  gem "activerecord-jdbcmysql-adapter", "~> 1.3.24", platform: :jruby
9
8
  end
10
9
  group :postgresql do
11
- gem "pg", "~> 0.18.0", platform: :ruby
10
+ gem "pg", "~> 0.18.4", platform: :ruby
12
11
  gem "activerecord-jdbcpostgresql-adapter", "~> 1.3.24", platform: :jruby
13
12
  end
14
13
 
15
- gem "activerecord", "~> 4.1.16"
14
+ gem "activerecord", "~> 4.2.0"
16
15
  end
17
16
 
18
- appraise "rails-4-2" do
17
+ appraise "rails-5-0" do
19
18
  group :sqlite do
20
- gem "sqlite3", "~> 1.3.13", platform: :ruby
21
- gem "activerecord-jdbcsqlite3-adapter", "~> 1.3.24", platform: :jruby
19
+ gem "activerecord-jdbcsqlite3-adapter", "~> 50.0", platform: :jruby
22
20
  end
23
21
  group :mysql do
24
- gem "mysql2", "~> 0.4.10", platform: :ruby
25
- gem "activerecord-jdbcmysql-adapter", "~> 1.3.24", platform: :jruby
22
+ gem "activerecord-jdbcmysql-adapter", "~> 50.0", platform: :jruby
26
23
  end
27
24
  group :postgresql do
28
- gem "pg", "~> 0.18.0", platform: :ruby
29
- gem "activerecord-jdbcpostgresql-adapter", "~> 1.3.24", platform: :jruby
25
+ gem "activerecord-jdbcpostgresql-adapter", "~> 50.0", platform: :jruby
30
26
  end
31
27
 
32
- gem "activerecord", "~> 4.2.10"
28
+ gem "activerecord", "~> 5.0.0"
33
29
  end
34
30
 
35
- appraise "rails-5-0" do
31
+ appraise "rails-5-1" do
36
32
  group :sqlite do
37
- gem "sqlite3", "~> 1.3.13", platform: :ruby
38
- gem "activerecord-jdbcsqlite3-adapter", "~> 50.1", platform: :jruby
33
+ gem "activerecord-jdbcsqlite3-adapter", "~> 51.0", platform: :jruby
39
34
  end
40
35
  group :mysql do
41
- gem "mysql2", "~> 0.4.10", platform: :ruby
42
- gem "activerecord-jdbcmysql-adapter", "~> 50.1", platform: :jruby
36
+ gem "activerecord-jdbcmysql-adapter", "~> 51.0", platform: :jruby
43
37
  end
44
38
  group :postgresql do
45
- gem "pg", "~> 0.21.0", platform: :ruby
46
- gem "activerecord-jdbcpostgresql-adapter", "~> 50.1", platform: :jruby
39
+ gem "activerecord-jdbcpostgresql-adapter", "~> 51.0", platform: :jruby
47
40
  end
48
41
 
49
- gem "activerecord", "~> 5.0.7"
42
+ gem "activerecord", "~> 5.1.0"
50
43
  end
51
44
 
52
- appraise "rails-5-1" do
45
+ appraise "rails-5-2" do
53
46
  group :sqlite do
54
- gem "sqlite3", "~> 1.3.13", platform: :ruby
55
- gem "activerecord-jdbcsqlite3-adapter", "~> 51.1", platform: :jruby
47
+ gem "activerecord-jdbcsqlite3-adapter", "~> 52.0", platform: :jruby
56
48
  end
57
49
  group :mysql do
58
- gem "mysql2", "~> 0.4.10", platform: :ruby
59
- gem "activerecord-jdbcmysql-adapter", "~> 51.1", platform: :jruby
50
+ gem "activerecord-jdbcmysql-adapter", "~> 52.0", platform: :jruby
60
51
  end
61
52
  group :postgresql do
62
- gem "pg", "~> 0.21.0", platform: :ruby
63
- gem "activerecord-jdbcpostgresql-adapter", "~> 51.1", platform: :jruby
53
+ gem "activerecord-jdbcpostgresql-adapter", "~> 52.0", platform: :jruby
64
54
  end
65
55
 
66
- gem "activerecord", "~> 5.1.6"
56
+ gem "activerecord", "~> 5.2.0"
67
57
  end
68
58
 
69
- appraise "rails-5-2" do
59
+ appraise "rails-6-0" do
70
60
  group :sqlite do
71
- gem "sqlite3", "~> 1.3.13", platform: :ruby
61
+ gem "sqlite3", "~> 1.4", platform: :ruby
62
+ gem "activerecord-jdbcsqlite3-adapter", "~> 60.0", platform: :jruby
72
63
  end
73
64
  group :mysql do
74
- gem "mysql2", "~> 0.4.10", platform: :ruby
65
+ gem "activerecord-jdbcmysql-adapter", "~> 60.0", platform: :jruby
75
66
  end
76
67
  group :postgresql do
77
- gem "pg", "~> 0.21.0", platform: :ruby
68
+ gem "activerecord-jdbcpostgresql-adapter", "~> 60.0", platform: :jruby
78
69
  end
79
-
80
- gem "activerecord", "~> 5.2.0"
81
- end
70
+ gem "activerecord", "~> 6.0.0"
71
+ end
data/Gemfile CHANGED
@@ -2,3 +2,15 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in ranked-model.gemspec
4
4
  gemspec
5
+
6
+ group :sqlite do
7
+ gem "sqlite3", "~> 1.3.13", platform: :ruby
8
+ end
9
+
10
+ group :postgresql do
11
+ gem "pg", "~> 1.1.4", platform: :ruby
12
+ end
13
+
14
+ group :mysql do
15
+ gem "mysql2", "~> 0.5.0", platform: :ruby
16
+ end
data/Readme.mkd CHANGED
@@ -5,7 +5,7 @@
5
5
  Installation
6
6
  ------------
7
7
 
8
- ranked-model passes specs with Rails 4.1, 4.2, 5.0, 5.1 and 5.2 for MySQL, Postgres, and SQLite on Ruby 1.9.3, 2.1 through 2.5, jruby-9.1.17.0, and rbx-3.107 where Rails supports the platform. This is with the exception of Postgres before Rails 4.0 on all platforms, which is unsupported by `ranked-model`. Note that the `pg` gem has pulled support for rbx (Rubinius) from version 1 onward.
8
+ ranked-model passes specs with Rails 4.2, 5.0, 5.1, 5.2, 6.0 for MySQL, Postgres, and SQLite on Ruby 2.4 through 2.6, and jruby-9.1.17.0 where Rails supports the platform. This is with the exception of Postgres before Rails 4.0 on all platforms, which is unsupported by `ranked-model`. Note that the `pg` gem has pulled support for rbx (Rubinius) from version 1 onward.
9
9
 
10
10
  TL;DR, if you are using Rails 4 and up you are 100% good to go. Before Rails 4, be wary of Postgres.
11
11
 
@@ -52,7 +52,7 @@ The ranking integers stored in the `row_order` column will be big and spaced apa
52
52
  implement a sorting UI, just update the resource by appending the column name with `_position` and indicating the desired position:
53
53
 
54
54
  ``` ruby
55
- @duck.update_attribute :row_order_position, 0 # or 1, 2, 37. :first, :last, :up and :down are also valid
55
+ @duck.update :row_order_position => 0 # or 1, 2, 37. :first, :last, :up and :down are also valid
56
56
  ```
57
57
 
58
58
  **IMPORTANT: Note that you MUST append _position to the column name when setting a new position on an instance. This is a fake column that can take relative as well as absolute index-based values for position.**
@@ -2,21 +2,21 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", "~> 4.2.10"
5
+ gem "activerecord", "~> 4.2.0"
6
6
 
7
7
  group :sqlite do
8
8
  gem "sqlite3", "~> 1.3.13", platform: :ruby
9
9
  gem "activerecord-jdbcsqlite3-adapter", "~> 1.3.24", platform: :jruby
10
10
  end
11
11
 
12
- group :mysql do
13
- gem "mysql2", "~> 0.4.10", platform: :ruby
14
- gem "activerecord-jdbcmysql-adapter", "~> 1.3.24", platform: :jruby
15
- end
16
-
17
12
  group :postgresql do
18
- gem "pg", "~> 0.18.0", platform: :ruby
13
+ gem "pg", "~> 0.18.4", platform: :ruby
19
14
  gem "activerecord-jdbcpostgresql-adapter", "~> 1.3.24", platform: :jruby
20
15
  end
21
16
 
17
+ group :mysql do
18
+ gem "mysql2", "~> 0.4.0", platform: :ruby
19
+ gem "activerecord-jdbcmysql-adapter", "~> 1.3.24", platform: :jruby
20
+ end
21
+
22
22
  gemspec path: "../"
@@ -2,21 +2,21 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", "~> 5.0.7"
5
+ gem "activerecord", "~> 5.0.0"
6
6
 
7
7
  group :sqlite do
8
8
  gem "sqlite3", "~> 1.3.13", platform: :ruby
9
- gem "activerecord-jdbcsqlite3-adapter", "~> 50.1", platform: :jruby
9
+ gem "activerecord-jdbcsqlite3-adapter", "~> 50.0", platform: :jruby
10
10
  end
11
11
 
12
- group :mysql do
13
- gem "mysql2", "~> 0.4.10", platform: :ruby
14
- gem "activerecord-jdbcmysql-adapter", "~> 50.1", platform: :jruby
12
+ group :postgresql do
13
+ gem "pg", "~> 1.1.4", platform: :ruby
14
+ gem "activerecord-jdbcpostgresql-adapter", "~> 50.0", platform: :jruby
15
15
  end
16
16
 
17
- group :postgresql do
18
- gem "pg", "~> 0.21.0", platform: :ruby
19
- gem "activerecord-jdbcpostgresql-adapter", "~> 50.1", platform: :jruby
17
+ group :mysql do
18
+ gem "mysql2", "~> 0.5.0", platform: :ruby
19
+ gem "activerecord-jdbcmysql-adapter", "~> 50.0", platform: :jruby
20
20
  end
21
21
 
22
22
  gemspec path: "../"
@@ -2,21 +2,21 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", "~> 5.1.6"
5
+ gem "activerecord", "~> 5.1.0"
6
6
 
7
7
  group :sqlite do
8
8
  gem "sqlite3", "~> 1.3.13", platform: :ruby
9
- gem "activerecord-jdbcsqlite3-adapter", "~> 51.1", platform: :jruby
9
+ gem "activerecord-jdbcsqlite3-adapter", "~> 51.0", platform: :jruby
10
10
  end
11
11
 
12
- group :mysql do
13
- gem "mysql2", "~> 0.4.10", platform: :ruby
14
- gem "activerecord-jdbcmysql-adapter", "~> 51.1", platform: :jruby
12
+ group :postgresql do
13
+ gem "pg", "~> 1.1.4", platform: :ruby
14
+ gem "activerecord-jdbcpostgresql-adapter", "~> 51.0", platform: :jruby
15
15
  end
16
16
 
17
- group :postgresql do
18
- gem "pg", "~> 0.21.0", platform: :ruby
19
- gem "activerecord-jdbcpostgresql-adapter", "~> 51.1", platform: :jruby
17
+ group :mysql do
18
+ gem "mysql2", "~> 0.5.0", platform: :ruby
19
+ gem "activerecord-jdbcmysql-adapter", "~> 51.0", platform: :jruby
20
20
  end
21
21
 
22
22
  gemspec path: "../"
@@ -6,14 +6,17 @@ gem "activerecord", "~> 5.2.0"
6
6
 
7
7
  group :sqlite do
8
8
  gem "sqlite3", "~> 1.3.13", platform: :ruby
9
+ gem "activerecord-jdbcsqlite3-adapter", "~> 52.0", platform: :jruby
9
10
  end
10
11
 
11
- group :mysql do
12
- gem "mysql2", "~> 0.4.10", platform: :ruby
12
+ group :postgresql do
13
+ gem "pg", "~> 1.1.4", platform: :ruby
14
+ gem "activerecord-jdbcpostgresql-adapter", "~> 52.0", platform: :jruby
13
15
  end
14
16
 
15
- group :postgresql do
16
- gem "pg", "~> 0.21.0", platform: :ruby
17
+ group :mysql do
18
+ gem "mysql2", "~> 0.5.0", platform: :ruby
19
+ gem "activerecord-jdbcmysql-adapter", "~> 52.0", platform: :jruby
17
20
  end
18
21
 
19
22
  gemspec path: "../"
@@ -0,0 +1,22 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 6.0.0"
6
+
7
+ group :sqlite do
8
+ gem "sqlite3", "~> 1.4", platform: :ruby
9
+ gem "activerecord-jdbcsqlite3-adapter", "~> 60.0", platform: :jruby
10
+ end
11
+
12
+ group :postgresql do
13
+ gem "pg", "~> 1.1.4", platform: :ruby
14
+ gem "activerecord-jdbcpostgresql-adapter", "~> 60.0", platform: :jruby
15
+ end
16
+
17
+ group :mysql do
18
+ gem "mysql2", "~> 0.5.0", platform: :ruby
19
+ gem "activerecord-jdbcmysql-adapter", "~> 60.0", platform: :jruby
20
+ end
21
+
22
+ gemspec path: "../"
@@ -69,7 +69,7 @@ module RankedModel
69
69
  end
70
70
 
71
71
  def column_default ranker
72
- column_defaults[ranker.name.to_s] if ActiveRecord::Base.connected?
72
+ column_defaults[ranker.name.to_s] if ActiveRecord::Base.connected? && table_exists?
73
73
  end
74
74
 
75
75
  end
@@ -175,7 +175,7 @@ module RankedModel
175
175
 
176
176
  def assure_unique_position
177
177
  if ( new_record? || rank_changed? )
178
- if (rank > RankedModel::MAX_RANK_VALUE) || current_at_rank(rank)
178
+ if (rank > RankedModel::MAX_RANK_VALUE) || rank_taken?
179
179
  rearrange_ranks
180
180
  end
181
181
  end
@@ -211,10 +211,12 @@ module RankedModel
211
211
  def rebalance_ranks
212
212
  if rank && instance.persisted?
213
213
  origin = current_order.index { |item| item.instance.id == instance.id }
214
- destination = current_order.index { |item| rank <= item.rank }
215
- destination -= 1 if origin < destination
214
+ if origin
215
+ destination = current_order.index { |item| rank <= item.rank }
216
+ destination -= 1 if origin < destination
216
217
 
217
- current_order.insert destination, current_order.delete_at(origin)
218
+ current_order.insert destination, current_order.delete_at(origin)
219
+ end
218
220
  end
219
221
 
220
222
  gaps = current_order.size + 1
@@ -290,13 +292,8 @@ module RankedModel
290
292
  end
291
293
  end
292
294
 
293
- def current_at_rank _rank
294
- if (ordered_instance = finder.
295
- except( :order ).
296
- where( ranker.column => _rank ).
297
- first)
298
- RankedModel::Ranker::Mapper.new ranker, ordered_instance
299
- end
295
+ def rank_taken?
296
+ finder.except(:order).where(ranker.column => rank).exists?
300
297
  end
301
298
 
302
299
  def neighbors_at_position _pos
@@ -1,3 +1,3 @@
1
1
  module RankedModel
2
- VERSION = "0.4.4"
2
+ VERSION = "0.4.5"
3
3
  end
@@ -9,11 +9,11 @@ Gem::Specification.new do |s|
9
9
  s.authors = ["Matthew Beale"]
10
10
  s.email = ["matt.beale@madhatted.com"]
11
11
  s.homepage = "https://github.com/mixonic/ranked-model"
12
- s.summary = %q{An acts_as_sortable replacement built for Rails 3 & 4}
13
- s.description = %q{ranked-model is a modern row sorting library built for Rails 3 & 4. It uses ARel aggressively and is better optimized than most other libraries.}
12
+ s.summary = %q{An acts_as_sortable replacement built for Rails 4.2+}
13
+ s.description = %q{ranked-model is a modern row sorting library built for Rails 4.2+. It uses ARel aggressively and is better optimized than most other libraries.}
14
14
  s.license = 'MIT'
15
15
 
16
- s.add_dependency "activerecord", ">= 4.1.16"
16
+ s.add_dependency "activerecord", ">= 4.2"
17
17
  s.add_development_dependency "rspec", "~> 3"
18
18
  s.add_development_dependency "rspec-its"
19
19
  s.add_development_dependency "mocha"
@@ -22,7 +22,7 @@ describe 'ColumnDefaultDuck' do
22
22
  end
23
23
  }.not_to raise_error
24
24
  ensure
25
- ActiveRecord::Base.establish_connection(DB_CONFIG.to_sym)
25
+ ActiveRecord::Base.establish_connection(ENV['DB'].to_sym)
26
26
  end
27
27
  end
28
28
 
@@ -48,9 +48,9 @@ describe Duck do
48
48
  }
49
49
  @ducks.each { |name, duck|
50
50
  duck.reload
51
- duck.update_attribute :row_position, 0
52
- duck.update_attribute :size_position, 0
53
- duck.update_attribute :age_position, 0
51
+ duck.update :row_position => 0
52
+ duck.update :size_position => 0
53
+ duck.update :age_position => 0
54
54
  duck.save!
55
55
  }
56
56
  @ducks.each {|name, duck| duck.reload }
@@ -59,8 +59,8 @@ describe Duck do
59
59
  describe "sorting by size on in_shin_pond" do
60
60
 
61
61
  before {
62
- @ducks[:quacky].update_attribute :size_position, 0
63
- @ducks[:wingy].update_attribute :size_position, 2
62
+ @ducks[:quacky].update :size_position => 0
63
+ @ducks[:wingy].update :size_position => 2
64
64
  }
65
65
 
66
66
  subject { Duck.in_shin_pond.rank(:size).to_a }
@@ -76,8 +76,8 @@ describe Duck do
76
76
  describe "sorting by age on Shin pond" do
77
77
 
78
78
  before {
79
- @ducks[:feathers].update_attribute :age_position, 0
80
- @ducks[:wingy].update_attribute :age_position, 0
79
+ @ducks[:feathers].update :age_position => 0
80
+ @ducks[:wingy].update :age_position => 0
81
81
  }
82
82
 
83
83
  subject { Duck.where(:pond => 'Shin').rank(:age).to_a }
@@ -93,10 +93,10 @@ describe Duck do
93
93
  describe "sorting by row" do
94
94
 
95
95
  before {
96
- @ducks[:beaky].update_attribute :row_position, 0
97
- @ducks[:webby].update_attribute :row_position, 2
98
- @ducks[:waddly].update_attribute :row_position, 2
99
- @ducks[:wingy].update_attribute :row_position, 6
96
+ @ducks[:beaky].update :row_position => 0
97
+ @ducks[:webby].update :row_position => 2
98
+ @ducks[:waddly].update :row_position => 2
99
+ @ducks[:wingy].update :row_position => 6
100
100
  }
101
101
 
102
102
  subject { Duck.rank(:row).to_a }
@@ -112,13 +112,13 @@ describe Duck do
112
112
  describe "mixed sorting by" do
113
113
 
114
114
  before {
115
- @ducks[:quacky].update_attribute :size_position, 0
116
- @ducks[:beaky].update_attribute :row_position, 0
117
- @ducks[:webby].update_attribute :row_position, 2
118
- @ducks[:wingy].update_attribute :size_position, 1
119
- @ducks[:waddly].update_attribute :row_position, 2
120
- @ducks[:wingy].update_attribute :row_position, 6
121
- @ducks[:webby].update_attribute :row_position, 6
115
+ @ducks[:quacky].update :size_position => 0
116
+ @ducks[:beaky].update :row_position => 0
117
+ @ducks[:webby].update :row_position => 2
118
+ @ducks[:wingy].update :size_position => 1
119
+ @ducks[:waddly].update :row_position => 2
120
+ @ducks[:wingy].update :row_position => 6
121
+ @ducks[:webby].update :row_position => 6
122
122
  }
123
123
 
124
124
  describe "row" do
@@ -153,7 +153,7 @@ describe Duck do
153
153
  # puts Duck.rank(:age).collect {|duck| "#{duck.name} #{duck.age}" }
154
154
  duck = Duck.rank(:age)[2]
155
155
  expect(->{
156
- duck.update_attribute :name, 'New Name'
156
+ duck.update :name => 'New Name'
157
157
  }).to_not change(duck.reload, :age)
158
158
  # puts Duck.rank(:age).collect {|duck| "#{duck.name} #{duck.age}" }
159
159
  end
@@ -187,7 +187,7 @@ describe Duck do
187
187
 
188
188
  before {
189
189
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:wingy].id).collect {|duck| duck.id }
190
- @ducks[:wingy].update_attribute :row_position, 2
190
+ @ducks[:wingy].update :row_position => 2
191
191
  }
192
192
 
193
193
  context {
@@ -214,7 +214,7 @@ describe Duck do
214
214
 
215
215
  before {
216
216
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:wingy].id).collect {|duck| duck.id }
217
- @ducks[:wingy].update_attribute :row_position, 0
217
+ @ducks[:wingy].update :row_position => 0
218
218
  }
219
219
 
220
220
  context {
@@ -254,7 +254,7 @@ describe Duck do
254
254
 
255
255
  context {
256
256
 
257
- before { @ducks[:wingy].update_attribute :row_position, (@ducks.size - 2) }
257
+ before { @ducks[:wingy].update :row_position => (@ducks.size - 2) }
258
258
 
259
259
  subject { Duck.ranker(:row).with(Duck.new).current_at_position(@ducks.size - 2).instance }
260
260
 
@@ -264,7 +264,7 @@ describe Duck do
264
264
 
265
265
  context {
266
266
 
267
- before { @ducks[:wingy].update_attribute :row_position, :down }
267
+ before { @ducks[:wingy].update :row_position => :down }
268
268
 
269
269
  subject { Duck.ranker(:row).with(Duck.new).current_at_position(@ducks.size - 2).instance }
270
270
 
@@ -278,7 +278,7 @@ describe Duck do
278
278
 
279
279
  before {
280
280
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:wingy].id).collect {|duck| duck.id }
281
- @ducks[:wingy].update_attribute :row_position, (@ducks.size - 1)
281
+ @ducks[:wingy].update :row_position => (@ducks.size - 1)
282
282
  }
283
283
 
284
284
  context {
@@ -319,7 +319,7 @@ describe Duck do
319
319
 
320
320
  before {
321
321
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:wingy].id).collect {|duck| duck.id }
322
- @ducks[:wingy].update_attribute :row_position, :last
322
+ @ducks[:wingy].update :row_position => :last
323
323
  }
324
324
 
325
325
  context {
@@ -360,7 +360,7 @@ describe Duck do
360
360
 
361
361
  before {
362
362
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:wingy].id).collect {|duck| duck.id }
363
- @ducks[:wingy].update_attribute :row_position, 'last'
363
+ @ducks[:wingy].update :row_position => 'last'
364
364
  }
365
365
 
366
366
  context {
@@ -403,7 +403,7 @@ describe Duck do
403
403
 
404
404
  before {
405
405
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:wingy].id).collect { |duck| duck.id }
406
- @ducks[:wingy].update_attribute :row_position, :down
406
+ @ducks[:wingy].update :row_position => :down
407
407
  }
408
408
 
409
409
  context {
@@ -430,7 +430,7 @@ describe Duck do
430
430
 
431
431
  before {
432
432
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:quacky].id).collect { |duck| duck.id }
433
- @ducks[:quacky].update_attribute :row_position, :down
433
+ @ducks[:quacky].update :row_position => :down
434
434
  }
435
435
 
436
436
  context {
@@ -455,7 +455,7 @@ describe Duck do
455
455
 
456
456
  before {
457
457
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:feathers].id).collect { |duck| duck.id }
458
- @ducks[:feathers].update_attribute :row_position, :down
458
+ @ducks[:feathers].update :row_position => :down
459
459
  }
460
460
 
461
461
  context {
@@ -484,7 +484,7 @@ describe Duck do
484
484
 
485
485
  before {
486
486
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:wingy].id).collect { |duck| duck.id }
487
- @ducks[:wingy].update_attribute :row_position, 'down'
487
+ @ducks[:wingy].update :row_position => 'down'
488
488
  }
489
489
 
490
490
  context {
@@ -511,7 +511,7 @@ describe Duck do
511
511
 
512
512
  before {
513
513
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:quacky].id).collect { |duck| duck.id }
514
- @ducks[:quacky].update_attribute :row_position, 'down'
514
+ @ducks[:quacky].update :row_position => 'down'
515
515
  }
516
516
 
517
517
  context {
@@ -536,7 +536,7 @@ describe Duck do
536
536
 
537
537
  before {
538
538
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:feathers].id).collect { |duck| duck.id }
539
- @ducks[:feathers].update_attribute :row_position, 'down'
539
+ @ducks[:feathers].update :row_position => 'down'
540
540
  }
541
541
 
542
542
  context {
@@ -565,7 +565,7 @@ describe Duck do
565
565
 
566
566
  before {
567
567
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:wingy].id).collect { |duck| duck.id }
568
- @ducks[:wingy].update_attribute :row_position, :up
568
+ @ducks[:wingy].update :row_position => :up
569
569
  }
570
570
 
571
571
  context {
@@ -592,7 +592,7 @@ describe Duck do
592
592
 
593
593
  before {
594
594
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:beaky].id).collect { |duck| duck.id }
595
- @ducks[:beaky].update_attribute :row_position, :up
595
+ @ducks[:beaky].update :row_position => :up
596
596
  }
597
597
 
598
598
  context {
@@ -617,7 +617,7 @@ describe Duck do
617
617
 
618
618
  before {
619
619
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:waddly].id).collect { |duck| duck.id }
620
- @ducks[:waddly].update_attribute :row_position, :up
620
+ @ducks[:waddly].update :row_position => :up
621
621
  }
622
622
 
623
623
  context {
@@ -645,7 +645,7 @@ describe Duck do
645
645
  Duck.where(id: @ducks[name].id).update_all(row: i)
646
646
  @ducks[name].reload
647
647
  end
648
- @ducks[:wingy].update_attribute :row_position, :up
648
+ @ducks[:wingy].update :row_position => :up
649
649
  }
650
650
 
651
651
  context {
@@ -675,7 +675,7 @@ describe Duck do
675
675
 
676
676
  before {
677
677
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:wingy].id).collect { |duck| duck.id }
678
- @ducks[:wingy].update_attribute :row_position, 'up'
678
+ @ducks[:wingy].update :row_position => 'up'
679
679
  }
680
680
 
681
681
  context {
@@ -702,7 +702,7 @@ describe Duck do
702
702
 
703
703
  before {
704
704
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:beaky].id).collect { |duck| duck.id }
705
- @ducks[:beaky].update_attribute :row_position, 'up'
705
+ @ducks[:beaky].update :row_position => 'up'
706
706
  }
707
707
 
708
708
  context {
@@ -727,7 +727,7 @@ describe Duck do
727
727
 
728
728
  before {
729
729
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_eq @ducks[:waddly].id).collect { |duck| duck.id }
730
- @ducks[:waddly].update_attribute :row_position, 'up'
730
+ @ducks[:waddly].update :row_position => 'up'
731
731
  }
732
732
 
733
733
  context {
@@ -779,6 +779,36 @@ describe Duck do
779
779
  }
780
780
  end
781
781
 
782
+ describe "when moving between ponds should work when rebalancing" do
783
+
784
+ before {
785
+ [:feathers, :wingy, :webby, :waddly, :beaky].each_with_index do |name, i|
786
+ Duck.where(id: @ducks[name].id).update_all(age: RankedModel::MIN_RANK_VALUE + i, pond: "Boyden")
787
+ @ducks[name].reload
788
+ end
789
+
790
+ Duck.find_by(id: @ducks[:quacky]).update!(age_position: 2, pond: "Boyden")
791
+ }
792
+
793
+ context {
794
+ subject { Duck.find_by(id: @ducks[:feathers]).age_rank }
795
+
796
+ it { should == 0 }
797
+ }
798
+
799
+ context {
800
+ subject { Duck.find_by(id: @ducks[:quacky]).age_rank }
801
+
802
+ it { should == 2 }
803
+ }
804
+
805
+ context {
806
+ subject { Duck.find_by(id: @ducks[:beaky]).age_rank }
807
+
808
+ it { should == 5 }
809
+ }
810
+ end
811
+
782
812
  end
783
813
 
784
814
  describe Duck do
@@ -812,7 +842,7 @@ describe Duck do
812
842
  }
813
843
  @ducks.each { |name, duck|
814
844
  duck.reload
815
- duck.update_attribute :landing_order_position, 0
845
+ duck.update :landing_order_position => 0
816
846
  duck.save!
817
847
  }
818
848
  @ducks.each {|name, duck| duck.reload }
@@ -821,8 +851,8 @@ describe Duck do
821
851
  describe "sorting by landing_order" do
822
852
 
823
853
  before {
824
- @ducks[:quacky].update_attribute :landing_order_position, 0
825
- @ducks[:wingy].update_attribute :landing_order_position, 1
854
+ @ducks[:quacky].update :landing_order_position => 0
855
+ @ducks[:wingy].update :landing_order_position => 1
826
856
  }
827
857
 
828
858
  subject { Duck.in_lake_and_flock(0,0).rank(:landing_order).to_a }
@@ -846,10 +876,10 @@ describe Duck do
846
876
 
847
877
  @previous_ranks = @untouchable_ranks.call
848
878
 
849
- @ducks[:quacky].update_attribute :landing_order_position, 0
850
- @ducks[:wingy].update_attribute :landing_order_position, 1
851
- @ducks[:feathers].update_attribute :landing_order_position, 0
852
- @ducks[:wingy].update_attribute :landing_order_position, 1
879
+ @ducks[:quacky].update :landing_order_position => 0
880
+ @ducks[:wingy].update :landing_order_position => 1
881
+ @ducks[:feathers].update :landing_order_position => 0
882
+ @ducks[:wingy].update :landing_order_position => 1
853
883
  }
854
884
 
855
885
  subject { @untouchable_ranks.call }
@@ -29,7 +29,7 @@ describe Duck do
29
29
 
30
30
  before {
31
31
  @last = Duck.last
32
- @last.update_attribute :row_position, 137
32
+ @last.update :row_position => 137
33
33
  }
34
34
 
35
35
  subject { Duck.ranker(:row).with(Duck.new).current_at_position(137).instance }
@@ -42,7 +42,7 @@ describe Duck do
42
42
 
43
43
  before {
44
44
  @last = Duck.last
45
- @last.update_attribute :row_position, 2
45
+ @last.update :row_position => 2
46
46
  }
47
47
 
48
48
  subject { Duck.ranker(:row).with(Duck.new).current_at_position(2).instance }
@@ -55,7 +55,7 @@ describe Duck do
55
55
 
56
56
  before {
57
57
  @last = Duck.last
58
- @last.update_attribute :row_position, :last
58
+ @last.update :row_position => :last
59
59
  }
60
60
 
61
61
  subject { Duck.rank(:row).last }
@@ -68,7 +68,7 @@ describe Duck do
68
68
 
69
69
  before {
70
70
  @last = Duck.last
71
- @last.update_attribute :row_position, :first
71
+ @last.update :row_position => :first
72
72
  }
73
73
 
74
74
  subject { Duck.rank(:row).first }
@@ -87,8 +87,8 @@ describe Duck do
87
87
  @first = Duck.first
88
88
  @second = Duck.offset(1).first
89
89
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_in([@first.id, @second.id])).collect {|d| d.id }
90
- @first.update_attribute :row, RankedModel::MAX_RANK_VALUE
91
- @second.update_attribute :row, RankedModel::MAX_RANK_VALUE
90
+ @first.update :row => RankedModel::MAX_RANK_VALUE
91
+ @second.update :row => RankedModel::MAX_RANK_VALUE
92
92
  }
93
93
 
94
94
  context {
@@ -105,13 +105,13 @@ describe Duck do
105
105
 
106
106
  before {
107
107
  Duck.first(50).each_with_index do |d, index|
108
- d.update_attributes :age => index % 10, :pond => "Pond #{index / 10}"
108
+ d.update :age => index % 10, :pond => "Pond #{index / 10}"
109
109
  end
110
110
  @duck_11 = Duck.where(:pond => 'Pond 1').rank(:age).first
111
111
  @duck_12 = Duck.where(:pond => 'Pond 1').rank(:age).second
112
112
  @ordered = Duck.where(:pond => 'Pond 1').rank(:age).where(Duck.arel_table[:id].not_in([@duck_11.id, @duck_12.id])).collect {|d| d.id }
113
- @duck_11.update_attribute :age, RankedModel::MAX_RANK_VALUE
114
- @duck_12.update_attribute :age, RankedModel::MAX_RANK_VALUE
113
+ @duck_11.update :age => RankedModel::MAX_RANK_VALUE
114
+ @duck_12.update :age => RankedModel::MAX_RANK_VALUE
115
115
  }
116
116
 
117
117
  context {
@@ -133,8 +133,8 @@ describe Duck do
133
133
  @first = Duck.first
134
134
  @second = Duck.offset(1).first
135
135
  @ordered = Duck.rank(:row).where(Duck.arel_table[:id].not_in([@first.id, @second.id])).collect {|d| d.id }
136
- @first.update_attribute :row, RankedModel::MIN_RANK_VALUE
137
- @second.update_attribute :row, RankedModel::MIN_RANK_VALUE
136
+ @first.update :row => RankedModel::MIN_RANK_VALUE
137
+ @second.update :row => RankedModel::MIN_RANK_VALUE
138
138
  }
139
139
 
140
140
  context {
@@ -163,11 +163,11 @@ describe Duck do
163
163
  where(Duck.arel_table[:id].not_in([@first.id, @second.id, @third.id, @fourth.id, @fifth.id])).
164
164
  where(Duck.arel_table[:row].gteq(RankedModel::MAX_RANK_VALUE / 2)).
165
165
  collect {|d| d.id }
166
- @first.update_attribute :row, RankedModel::MIN_RANK_VALUE
167
- @second.update_attribute :row, RankedModel::MAX_RANK_VALUE
168
- @third.update_attribute :row, (RankedModel::MAX_RANK_VALUE / 2)
166
+ @first.update :row => RankedModel::MIN_RANK_VALUE
167
+ @second.update :row => RankedModel::MAX_RANK_VALUE
168
+ @third.update :row => (RankedModel::MAX_RANK_VALUE / 2)
169
169
  Duck.where(id: @fifth.id).update_all row: @third.row
170
- @fourth.update_attribute :row, @third.row
170
+ @fourth.update :row => @third.row
171
171
  }
172
172
 
173
173
  context {
@@ -10,7 +10,7 @@ describe Ego do
10
10
  }
11
11
  @egos.each { |name, ego|
12
12
  ego.reload
13
- ego.update_attribute :size_position, 0
13
+ ego.update :size_position => 0
14
14
  ego.save!
15
15
  }
16
16
  @egos.each {|name, ego| ego.reload }
@@ -19,8 +19,8 @@ describe Ego do
19
19
  describe "sorting on size alternative primary key" do
20
20
 
21
21
  before {
22
- @egos[:nick].update_attribute :size_position, 0
23
- @egos[:sally].update_attribute :size_position, 2
22
+ @egos[:nick].update :size_position => 0
23
+ @egos[:sally].update :size_position => 2
24
24
  }
25
25
 
26
26
  subject { Ego.rank(:size).to_a }
@@ -14,8 +14,8 @@ describe Number do
14
14
  @first = Number.first
15
15
  @second = Number.offset(1).first
16
16
  @ordered = Number.rank(:order).where(Number.arel_table[:id].not_in([@first.id, @second.id])).collect {|d| d.id }
17
- @first.update_attribute :order, RankedModel::MAX_RANK_VALUE
18
- @second.update_attribute :order, RankedModel::MAX_RANK_VALUE
17
+ @first.update :order => RankedModel::MAX_RANK_VALUE
18
+ @second.update :order => RankedModel::MAX_RANK_VALUE
19
19
  }
20
20
 
21
21
  context {
@@ -16,7 +16,7 @@ describe Player do
16
16
 
17
17
  describe "setting the position of a record that already exists" do
18
18
  it "sets the rank without error" do
19
- expect{@players[:bob].update_attributes! :score_position => 1}.to_not raise_error
19
+ expect{@players[:bob].update! :score_position => 1}.to_not raise_error
20
20
  end
21
21
  end
22
22
  end
@@ -12,7 +12,7 @@ describe Element do
12
12
  }
13
13
  @elements.each { |name, element|
14
14
  element.reload
15
- element.update_attribute :combination_order_position, 0
15
+ element.update :combination_order_position => 0
16
16
  }
17
17
  @elements.each {|name, element| element.reload }
18
18
  }
@@ -20,9 +20,9 @@ describe Element do
20
20
  describe "rebalancing on an STI class should not affect the other class" do
21
21
 
22
22
  before {
23
- @elements[:helium].update_attribute :combination_order_position, :first
24
- @elements[:xenon].update_attribute :combination_order_position, :first
25
- @elements[:argon].update_attribute :combination_order_position, :last
23
+ @elements[:helium].update :combination_order_position => :first
24
+ @elements[:xenon].update :combination_order_position => :first
25
+ @elements[:argon].update :combination_order_position => :last
26
26
 
27
27
  TransitionMetal.ranker(:combination_order).with(@elements[:chromium]).instance_eval { rebalance_ranks }
28
28
  }
@@ -40,16 +40,16 @@ describe Element do
40
40
  describe "setting positions on STI classes" do
41
41
 
42
42
  before {
43
- @elements[:helium].update_attribute :combination_order_position, :first
44
- @elements[:xenon].update_attribute :combination_order_position, :first
45
- @elements[:argon].update_attribute :combination_order_position, :first
46
-
47
- @elements[:chromium].update_attribute :combination_order_position, 1
48
- @elements[:manganese].update_attribute :combination_order_position, 1
49
- @elements[:manganese].update_attribute :combination_order_position, 0
50
- @elements[:chromium].update_attribute :combination_order_position, 0
51
- @elements[:manganese].update_attribute :combination_order_position, 0
52
- @elements[:chromium].update_attribute :combination_order_position, 0
43
+ @elements[:helium].update :combination_order_position => :first
44
+ @elements[:xenon].update :combination_order_position => :first
45
+ @elements[:argon].update :combination_order_position => :first
46
+
47
+ @elements[:chromium].update :combination_order_position => 1
48
+ @elements[:manganese].update :combination_order_position => 1
49
+ @elements[:manganese].update :combination_order_position => 0
50
+ @elements[:chromium].update :combination_order_position => 0
51
+ @elements[:manganese].update :combination_order_position => 0
52
+ @elements[:chromium].update :combination_order_position => 0
53
53
  }
54
54
 
55
55
  describe "NobleGas" do
@@ -81,16 +81,16 @@ describe Element do
81
81
  describe "setting positions on STI classes" do
82
82
 
83
83
  before {
84
- @elements[:helium].update_attribute :combination_order_position, :first
85
- @elements[:xenon].update_attribute :combination_order_position, :first
86
- @elements[:argon].update_attribute :combination_order_position, :first
87
-
88
- @elements[:chromium].update_attribute :combination_order_position, 1
89
- @elements[:manganese].update_attribute :combination_order_position, 1
90
- @elements[:manganese].update_attribute :combination_order_position, 0
91
- @elements[:chromium].update_attribute :combination_order_position, 0
92
- @elements[:manganese].update_attribute :combination_order_position, 0
93
- @elements[:chromium].update_attribute :combination_order_position, 0
84
+ @elements[:helium].update :combination_order_position => :first
85
+ @elements[:xenon].update :combination_order_position => :first
86
+ @elements[:argon].update :combination_order_position => :first
87
+
88
+ @elements[:chromium].update :combination_order_position => 1
89
+ @elements[:manganese].update :combination_order_position => 1
90
+ @elements[:manganese].update :combination_order_position => 0
91
+ @elements[:chromium].update :combination_order_position => 0
92
+ @elements[:manganese].update :combination_order_position => 0
93
+ @elements[:chromium].update :combination_order_position => 0
94
94
  }
95
95
 
96
96
  describe "NobleGas" do
@@ -12,7 +12,7 @@ describe Vehicle do
12
12
  }
13
13
  @vehicles.each { |name, vehicle|
14
14
  vehicle.reload
15
- vehicle.update_attribute :parking_order_position, 0
15
+ vehicle.update :parking_order_position => 0
16
16
  }
17
17
  @vehicles.each {|name, vehicle| vehicle.reload }
18
18
  }
@@ -20,8 +20,8 @@ describe Vehicle do
20
20
  describe "ranking by STI parent" do
21
21
 
22
22
  before {
23
- @vehicles[:volvo].update_attribute :parking_order_position, :first
24
- @vehicles[:ford].update_attribute :parking_order_position, :first
23
+ @vehicles[:volvo].update :parking_order_position => :first
24
+ @vehicles[:ford].update :parking_order_position => :first
25
25
  }
26
26
 
27
27
  describe "Vehicle" do
@@ -72,4 +72,4 @@ describe Vehicle do
72
72
 
73
73
  end
74
74
 
75
- end
75
+ end
@@ -1,13 +1,13 @@
1
1
  require 'active_record'
2
2
  require 'logger'
3
3
 
4
- ROOT = File.join(File.dirname(__FILE__), '..')
5
-
6
- DB_CONFIG = ENV["DB"] || "sqlite"
4
+ unless ENV['DB']
5
+ ENV['DB'] = 'sqlite'
6
+ end
7
7
 
8
8
  ActiveRecord::Base.logger = Logger.new('tmp/ar_debug.log')
9
9
  ActiveRecord::Base.configurations = YAML::load(IO.read('spec/support/database.yml'))
10
- ActiveRecord::Base.establish_connection(DB_CONFIG.to_sym)
10
+ ActiveRecord::Base.establish_connection(ENV['DB'].to_sym)
11
11
 
12
12
  ActiveRecord::Schema.define :version => 0 do
13
13
  create_table :ducks, :force => true do |t|
@@ -148,7 +148,7 @@ class MotorBike < Vehicle
148
148
  end
149
149
 
150
150
  class Ego < ActiveRecord::Base
151
- primary_key = :alternative_to_id
151
+ self.primary_key = :alternative_to_id
152
152
  include RankedModel
153
153
  ranks :size
154
154
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ranked-model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Beale
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-23 00:00:00.000000000 Z
11
+ date: 2020-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.1.16
19
+ version: '4.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 4.1.16
26
+ version: '4.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -122,7 +122,7 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
- description: ranked-model is a modern row sorting library built for Rails 3 & 4. It
125
+ description: ranked-model is a modern row sorting library built for Rails 4.2+. It
126
126
  uses ARel aggressively and is better optimized than most other libraries.
127
127
  email:
128
128
  - matt.beale@madhatted.com
@@ -138,11 +138,11 @@ files:
138
138
  - LICENSE
139
139
  - Rakefile
140
140
  - Readme.mkd
141
- - gemfiles/rails_4_1.gemfile
142
141
  - gemfiles/rails_4_2.gemfile
143
142
  - gemfiles/rails_5_0.gemfile
144
143
  - gemfiles/rails_5_1.gemfile
145
144
  - gemfiles/rails_5_2.gemfile
145
+ - gemfiles/rails_6_0.gemfile
146
146
  - lib/ranked-model.rb
147
147
  - lib/ranked-model/railtie.rb
148
148
  - lib/ranked-model/ranker.rb
@@ -183,11 +183,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
183
  - !ruby/object:Gem::Version
184
184
  version: '0'
185
185
  requirements: []
186
- rubyforge_project:
187
- rubygems_version: 2.5.2.2
186
+ rubygems_version: 3.0.3
188
187
  signing_key:
189
188
  specification_version: 4
190
- summary: An acts_as_sortable replacement built for Rails 3 & 4
189
+ summary: An acts_as_sortable replacement built for Rails 4.2+
191
190
  test_files:
192
191
  - spec/duck-model/column_default_ducks_spec.rb
193
192
  - spec/duck-model/duck_spec.rb
@@ -1,22 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 4.1.16"
6
-
7
- group :sqlite do
8
- gem "sqlite3", "~> 1.3.13", platform: :ruby
9
- gem "activerecord-jdbcsqlite3-adapter", "~> 1.3.24", platform: :jruby
10
- end
11
-
12
- group :mysql do
13
- gem "mysql2", "~> 0.3.21", platform: :ruby
14
- gem "activerecord-jdbcmysql-adapter", "~> 1.3.24", platform: :jruby
15
- end
16
-
17
- group :postgresql do
18
- gem "pg", "~> 0.18.0", platform: :ruby
19
- gem "activerecord-jdbcpostgresql-adapter", "~> 1.3.24", platform: :jruby
20
- end
21
-
22
- gemspec path: "../"