ranked-model 0.4.7 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8dac9a4acefc5a44cfe74e77931854bb8edd031cc986f3bc0bd8232f543dc0f9
4
- data.tar.gz: 9bd6120114a23ef47ae08581b860cd0cb4fa18779fb237b9b9570d94a889cc75
3
+ metadata.gz: 61451e859060c7d8a3f889bd54327b103797d728312cedef66efa1b25d11767f
4
+ data.tar.gz: 2e1df0f514decf2e43667c2d0139e510202fc0ebc32aed758831ea20497aaf1a
5
5
  SHA512:
6
- metadata.gz: dc8d0ad9348de7596934a2eab69da78228c3351bd4d16303eae592b3893ecfedc28ff4620997977e8a88dc9d26dc27999c99e6e2abddc7ab6fe1f24aeb108527
7
- data.tar.gz: 03a77db0fc8e9f59b4ffaccf24c966a54125141ab07a931046387e30cf62b7bf0577d9d983d268322dc69a7004c68c001168083d428cffff118832085afe3d21
6
+ metadata.gz: d046ed8e55533b8f453a67e0c705738e9353b22b20b01310381a56195803ee066cd647e1b8801484ca79518a8ea2394577841d4b9c4eb97d12f0b36246c1bfc7
7
+ data.tar.gz: ca05b38d74cbe11544cabb70890c64d26c9a94c4608d2b4d7da1253535efc03775ef3fed80fc9b93709f503f3f53a8cd725b7f2b8c43ad8565a72139f0ec53e5
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: [brendon]
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
@@ -0,0 +1,90 @@
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
+ gemfile:
20
+ - gemfiles/rails_5_2.gemfile
21
+ - gemfiles/rails_6_0.gemfile
22
+ - gemfiles/rails_6_1.gemfile
23
+ - gemfiles/rails_7_0.gemfile
24
+ db:
25
+ - sqlite
26
+ - mysql
27
+ - postgresql
28
+ exclude:
29
+ - ruby: 2.4
30
+ gemfile: gemfiles/rails_6_0.gemfile
31
+ - ruby: 2.4
32
+ gemfile: gemfiles/rails_6_1.gemfile
33
+ - ruby: 2.4
34
+ gemfile: gemfiles/rails_7_0.gemfile
35
+ - ruby: 2.5
36
+ gemfile: gemfiles/rails_7_0.gemfile
37
+ - ruby: 2.6
38
+ gemfile: gemfiles/rails_7_0.gemfile
39
+ - ruby: '3.0'
40
+ gemfile: gemfiles/rails_5_2.gemfile
41
+ - ruby: 3.1
42
+ gemfile: gemfiles/rails_5_2.gemfile
43
+ - ruby: 3.1
44
+ gemfile: gemfiles/rails_6_0.gemfile
45
+ os:
46
+ - ubuntu-latest
47
+ services:
48
+ mysql:
49
+ image: mysql:5.7
50
+ env:
51
+ MYSQL_ALLOW_EMPTY_PASSWORD: yes
52
+ ports:
53
+ - 3306:3306
54
+ options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
55
+
56
+ postgres:
57
+ # Docker Hub image
58
+ image: postgres
59
+ # Provide the password for postgres
60
+ env:
61
+ POSTGRES_USER: postgres
62
+ POSTGRES_HOST_AUTH_METHOD: trust
63
+ ports:
64
+ - 5432:5432
65
+ # Set health checks to wait until postgres has started
66
+ options: >-
67
+ --health-cmd pg_isready
68
+ --health-interval 10s
69
+ --health-timeout 5s
70
+ --health-retries 5
71
+ env:
72
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
73
+ DB: ${{ matrix.db }}
74
+ steps:
75
+ - uses: actions/checkout@v3
76
+ - name: Set up Ruby
77
+ uses: ruby/setup-ruby@v1
78
+ with:
79
+ ruby-version: ${{ matrix.ruby }}
80
+ bundler-cache: true
81
+ - name: "Create MySQL database"
82
+ if: ${{ env.DB == 'mysql' }}
83
+ run: |
84
+ mysql -h 127.0.0.1 -u root -e 'create database ranked_model_test;'
85
+ - name: "Create PostgreSQL database"
86
+ if: ${{ env.DB == 'postgresql' }}
87
+ run: |
88
+ psql -c 'create database ranked_model_test;' -h localhost -U postgres
89
+ - name: Run tests
90
+ run: bundle exec rake
data/.gitignore CHANGED
@@ -2,6 +2,7 @@ pkg/*
2
2
  *.gem
3
3
  .bundle
4
4
  *.un~
5
+ *.swp
5
6
 
6
7
  Gemfile.lock
7
8
  *.gemfile.lock
data/.travis.yml CHANGED
@@ -26,6 +26,7 @@ gemfile:
26
26
  - gemfiles/rails_5_1.gemfile
27
27
  - gemfiles/rails_5_2.gemfile
28
28
  - gemfiles/rails_6_0.gemfile
29
+ - gemfiles/rails_6_1.gemfile
29
30
  matrix:
30
31
  exclude:
31
32
  # Rails <6 does not support Ruby 3, see:
@@ -49,3 +50,7 @@ matrix:
49
50
  gemfile: gemfiles/rails_6_0.gemfile
50
51
  - rvm: jruby-9.1.17.0
51
52
  gemfile: gemfiles/rails_6_0.gemfile
53
+ - rvm: 2.4
54
+ gemfile: gemfiles/rails_6_1.gemfile
55
+ - rvm: jruby-9.1.17.0
56
+ gemfile: gemfiles/rails_6_1.gemfile
data/Appraisals CHANGED
@@ -1,72 +1,55 @@
1
- appraise "rails-4-2" do
2
- group :sqlite do
3
- gem "activerecord-jdbcsqlite3-adapter", "~> 1.3.24", platform: :jruby
4
- end
5
- group :mysql do
6
- gem "mysql2", "~> 0.4.0", platform: :ruby
7
- gem "jdbc-mysql", "~> 5.1.47", platform: :jruby
8
- gem "activerecord-jdbcmysql-adapter", "~> 1.3.24", platform: :jruby
9
- end
10
- group :postgresql do
11
- gem "pg", "~> 0.18.4", platform: :ruby
12
- gem "activerecord-jdbcpostgresql-adapter", "~> 1.3.24", platform: :jruby
13
- end
14
-
15
- gem "activerecord", "~> 4.2.0"
16
- end
17
-
18
- appraise "rails-5-0" do
1
+ appraise "rails-5-2" do
19
2
  group :sqlite do
20
- gem "activerecord-jdbcsqlite3-adapter", "~> 50.0", platform: :jruby
3
+ gem "activerecord-jdbcsqlite3-adapter", "~> 52.0", platform: :jruby
21
4
  end
22
5
  group :mysql do
23
- gem "activerecord-jdbcmysql-adapter", "~> 50.0", platform: :jruby
6
+ gem "activerecord-jdbcmysql-adapter", "~> 52.0", platform: :jruby
24
7
  end
25
8
  group :postgresql do
26
- gem "activerecord-jdbcpostgresql-adapter", "~> 50.0", platform: :jruby
9
+ gem "activerecord-jdbcpostgresql-adapter", "~> 52.0", platform: :jruby
27
10
  end
28
11
 
29
- gem "activerecord", "~> 5.0.0"
12
+ gem "activerecord", "~> 5.2.0"
30
13
  end
31
14
 
32
- appraise "rails-5-1" do
15
+ appraise "rails-6-0" do
33
16
  group :sqlite do
34
- gem "activerecord-jdbcsqlite3-adapter", "~> 51.0", platform: :jruby
17
+ gem "sqlite3", "~> 1.4", platform: :ruby
18
+ gem "activerecord-jdbcsqlite3-adapter", "~> 60.0", platform: :jruby
35
19
  end
36
20
  group :mysql do
37
- gem "activerecord-jdbcmysql-adapter", "~> 51.0", platform: :jruby
21
+ gem "activerecord-jdbcmysql-adapter", "~> 60.0", platform: :jruby
38
22
  end
39
23
  group :postgresql do
40
- gem "activerecord-jdbcpostgresql-adapter", "~> 51.0", platform: :jruby
24
+ gem "activerecord-jdbcpostgresql-adapter", "~> 60.0", platform: :jruby
41
25
  end
42
-
43
- gem "activerecord", "~> 5.1.0"
26
+ gem "activerecord", "~> 6.0.0"
44
27
  end
45
28
 
46
- appraise "rails-5-2" do
29
+ appraise "rails-6-1" do
47
30
  group :sqlite do
48
- gem "activerecord-jdbcsqlite3-adapter", "~> 52.0", platform: :jruby
31
+ gem "sqlite3", "~> 1.4", platform: :ruby
32
+ gem "activerecord-jdbcsqlite3-adapter", "~> 61.0", platform: :jruby
49
33
  end
50
34
  group :mysql do
51
- gem "activerecord-jdbcmysql-adapter", "~> 52.0", platform: :jruby
35
+ gem "activerecord-jdbcmysql-adapter", "~> 61.0", platform: :jruby
52
36
  end
53
37
  group :postgresql do
54
- gem "activerecord-jdbcpostgresql-adapter", "~> 52.0", platform: :jruby
38
+ gem "activerecord-jdbcpostgresql-adapter", "~> 61.0", platform: :jruby
55
39
  end
56
-
57
- gem "activerecord", "~> 5.2.0"
40
+ gem "activerecord", "~> 6.1.0"
58
41
  end
59
42
 
60
- appraise "rails-6-0" do
43
+ appraise "rails-7-0" do
61
44
  group :sqlite do
62
45
  gem "sqlite3", "~> 1.4", platform: :ruby
63
- gem "activerecord-jdbcsqlite3-adapter", "~> 60.0", platform: :jruby
46
+ gem "activerecord-jdbcsqlite3-adapter", "~> 61.0", platform: :jruby
64
47
  end
65
48
  group :mysql do
66
- gem "activerecord-jdbcmysql-adapter", "~> 60.0", platform: :jruby
49
+ gem "activerecord-jdbcmysql-adapter", "~> 61.0", platform: :jruby
67
50
  end
68
51
  group :postgresql do
69
- gem "activerecord-jdbcpostgresql-adapter", "~> 60.0", platform: :jruby
52
+ gem "activerecord-jdbcpostgresql-adapter", "~> 61.0", platform: :jruby
70
53
  end
71
- gem "activerecord", "~> 6.0.0"
54
+ gem "activerecord", "~> 7.0.0"
72
55
  end
data/Gemfile CHANGED
@@ -4,13 +4,13 @@ source "https://rubygems.org"
4
4
  gemspec
5
5
 
6
6
  group :sqlite do
7
- gem "sqlite3", "~> 1.3.13", platform: :ruby
7
+ gem "sqlite3", platform: :ruby
8
8
  end
9
9
 
10
10
  group :postgresql do
11
- gem "pg", "~> 1.2.0", platform: :ruby
11
+ gem "pg", platform: :ruby
12
12
  end
13
13
 
14
14
  group :mysql do
15
- gem "mysql2", "~> 0.5.0", platform: :ruby
15
+ gem "mysql2", platform: :ruby
16
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.2, 5.0, 5.1, 5.2 and 6.0 for MySQL, Postgres, and SQLite on Ruby 2.4 through 3.0 (with exceptions, please check the CI setup for supported combinations), and jruby-9.1.17.0 where Rails supports the platform.
8
+ ranked-model passes specs with Rails 4.2, 5.0, 5.1, 5.2, 6.0 and 6.1 for MySQL, Postgres, and SQLite on Ruby 2.4 through 3.0 (with exceptions, please check the CI setup for supported combinations), and jruby-9.1.17.0 where Rails supports the platform.
9
9
 
10
10
  To install ranked-model, just add it to your `Gemfile`:
11
11
 
@@ -136,6 +136,37 @@ Pond.first.ducks.rank(:swimming_order)
136
136
  Duck.walking.rank(:walking)
137
137
  ```
138
138
 
139
+ Drawbacks
140
+ ---------
141
+
142
+ While ranked-model is performant when storing data, it might cause N+1s depending on how you write your code. Consider this snippet:
143
+
144
+ ```ruby
145
+ ducks = Duck.all
146
+ ducks.map do |duck|
147
+ {
148
+ id: duck.id,
149
+ position: duck.row_order_rank # This causes N+1!
150
+ }
151
+ end
152
+ ```
153
+
154
+ Every call to `duck.row_order_rank` will make a call to the DB to check the rank of that
155
+ particular element. If you have a long list of elements this might cause issues to your DB.
156
+
157
+ In order to avoid that, you can use the `rank(:your_rank)` scope and some Ruby code to get
158
+ the element's position:
159
+
160
+ ```ruby
161
+ ducks = Duck.rank(:row_order).all
162
+ ducks.map.with_index do |duck, index|
163
+ {
164
+ id: duck.id,
165
+ position: index
166
+ }
167
+ end
168
+ ```
169
+
139
170
  Single Table Inheritance (STI)
140
171
  ------------------------------
141
172
 
@@ -212,7 +243,7 @@ class AddRowOrderToDucks < ActiveRecord::Migration[6.0]
212
243
  Duck.update_all('row_order = EXTRACT(EPOCH FROM created_at)')
213
244
 
214
245
  # Alternatively, implement any other sorting default
215
- # Duck.order(created_at: :desc).desc.each do |duck|
246
+ # Duck.order(created_at: :desc).each do |duck|
216
247
  # duck.update!(row_order: duck.created_at.to_i + duck.age / 2)
217
248
  # end
218
249
  end
@@ -5,17 +5,17 @@ source "https://rubygems.org"
5
5
  gem "activerecord", "~> 5.2.0"
6
6
 
7
7
  group :sqlite do
8
- gem "sqlite3", "~> 1.3.13", platform: :ruby
8
+ gem "sqlite3", platform: :ruby
9
9
  gem "activerecord-jdbcsqlite3-adapter", "~> 52.0", platform: :jruby
10
10
  end
11
11
 
12
12
  group :postgresql do
13
- gem "pg", "~> 1.2.0", platform: :ruby
13
+ gem "pg", platform: :ruby
14
14
  gem "activerecord-jdbcpostgresql-adapter", "~> 52.0", platform: :jruby
15
15
  end
16
16
 
17
17
  group :mysql do
18
- gem "mysql2", "~> 0.5.0", platform: :ruby
18
+ gem "mysql2", platform: :ruby
19
19
  gem "activerecord-jdbcmysql-adapter", "~> 52.0", platform: :jruby
20
20
  end
21
21
 
@@ -10,12 +10,12 @@ group :sqlite do
10
10
  end
11
11
 
12
12
  group :postgresql do
13
- gem "pg", "~> 1.2.0", platform: :ruby
13
+ gem "pg", platform: :ruby
14
14
  gem "activerecord-jdbcpostgresql-adapter", "~> 60.0", platform: :jruby
15
15
  end
16
16
 
17
17
  group :mysql do
18
- gem "mysql2", "~> 0.5.0", platform: :ruby
18
+ gem "mysql2", platform: :ruby
19
19
  gem "activerecord-jdbcmysql-adapter", "~> 60.0", platform: :jruby
20
20
  end
21
21
 
@@ -0,0 +1,22 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 6.1.0"
6
+
7
+ group :sqlite do
8
+ gem "sqlite3", "~> 1.4", platform: :ruby
9
+ gem "activerecord-jdbcsqlite3-adapter", "~> 61.0", platform: :jruby
10
+ end
11
+
12
+ group :postgresql do
13
+ gem "pg", platform: :ruby
14
+ gem "activerecord-jdbcpostgresql-adapter", "~> 61.0", platform: :jruby
15
+ end
16
+
17
+ group :mysql do
18
+ gem "mysql2", platform: :ruby
19
+ gem "activerecord-jdbcmysql-adapter", "~> 61.0", platform: :jruby
20
+ end
21
+
22
+ gemspec path: "../"
@@ -0,0 +1,22 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 7.0.0"
6
+
7
+ group :sqlite do
8
+ gem "sqlite3", "~> 1.4", platform: :ruby
9
+ gem "activerecord-jdbcsqlite3-adapter", "~> 61.0", platform: :jruby
10
+ end
11
+
12
+ group :postgresql do
13
+ gem "pg", platform: :ruby
14
+ gem "activerecord-jdbcpostgresql-adapter", "~> 61.0", platform: :jruby
15
+ end
16
+
17
+ group :mysql do
18
+ gem "mysql2", platform: :ruby
19
+ gem "activerecord-jdbcmysql-adapter", "~> 61.0", platform: :jruby
20
+ end
21
+
22
+ gemspec path: "../"
@@ -114,6 +114,7 @@ module RankedModel
114
114
 
115
115
  def rank_at value
116
116
  instance.send "#{ranker.column}=", value
117
+ instance.send "#{ranker.name}_position=", relative_rank unless position.is_a?(Integer)
117
118
  end
118
119
 
119
120
  def rank_changed?
@@ -236,7 +237,7 @@ module RankedModel
236
237
  new_rank = (gap_size * position) + RankedModel::MIN_RANK_VALUE
237
238
 
238
239
  if item.instance.id == instance.id
239
- rank_at new_rank
240
+ instance.send "#{ranker.column}=", new_rank
240
241
  else
241
242
  item.update_rank! new_rank
242
243
  end
@@ -294,9 +295,7 @@ module RankedModel
294
295
 
295
296
  def current_last
296
297
  @current_last ||= begin
297
- if (ordered_instance = finder.
298
- reverse.
299
- first)
298
+ if (ordered_instance = finder.last)
300
299
  RankedModel::Ranker::Mapper.new ranker, ordered_instance
301
300
  end
302
301
  end
@@ -1,3 +1,3 @@
1
1
  module RankedModel
2
- VERSION = "0.4.7"
2
+ VERSION = "0.4.9"
3
3
  end
data/ranked-model.gemspec CHANGED
@@ -13,12 +13,12 @@ Gem::Specification.new do |s|
13
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.2"
16
+ s.add_dependency "activerecord", ">= 5.2"
17
17
  s.add_development_dependency "rspec", "~> 3"
18
18
  s.add_development_dependency "rspec-its"
19
19
  s.add_development_dependency "mocha"
20
20
  s.add_development_dependency "database_cleaner", "~> 1.7.0"
21
- s.add_development_dependency "rake", "~> 10.1.0"
21
+ s.add_development_dependency "rake", ">= 12.3.3"
22
22
  s.add_development_dependency "appraisal"
23
23
  s.add_development_dependency "pry"
24
24
 
@@ -0,0 +1,71 @@
1
+ require "spec_helper"
2
+
3
+ describe Duck do
4
+ before do
5
+ 5.times do |i|
6
+ Duck.create(name: "Duck #{i + 1}")
7
+ end
8
+ end
9
+
10
+ describe "updating a duck order with last" do
11
+ it "should maintain the order after creating a new duck" do
12
+ duck = Duck.first
13
+ duck.update(row_position: :last)
14
+ expect(duck.row_rank).to eq(4)
15
+
16
+ Duck.create(name: "Wacky")
17
+
18
+ expect(duck.row_rank).to eq(4)
19
+
20
+ duck.update(pond: 'Shin')
21
+ expect(duck.row_rank).to eq(4)
22
+ end
23
+ end
24
+
25
+ describe "updating a duck order with first" do
26
+ it "should maintain the order after creating a new duck" do
27
+ duck = Duck.last
28
+ duck.update(row_position: :first)
29
+ expect(duck.row_rank).to eq(0)
30
+
31
+ Duck.create(name: "Wacky")
32
+
33
+ expect(duck.row_rank).to eq(0)
34
+
35
+ duck.update(pond: 'Shin')
36
+ expect(duck.row_rank).to eq(0)
37
+ end
38
+ end
39
+
40
+ describe "updating a duck order with up" do
41
+ it "should maintain the order after creating a new duck" do
42
+ duck_id = Duck.ranker(:row).with(Duck.new).current_at_position(2).instance.id
43
+ duck = Duck.find(duck_id)
44
+ duck.update(row_position: :up)
45
+ expect(duck.row_rank).to eq(1)
46
+
47
+ Duck.create(name: "Wacky")
48
+
49
+ expect(duck.row_rank).to eq(1)
50
+
51
+ duck.update(pond: 'Shin')
52
+ expect(duck.row_rank).to eq(1)
53
+ end
54
+ end
55
+
56
+ describe "updating a duck order with down" do
57
+ it "should maintain the order after creating a new duck" do
58
+ duck_id = Duck.ranker(:row).with(Duck.new).current_at_position(2).instance.id
59
+ duck = Duck.find(duck_id)
60
+ duck.update(row_position: :down)
61
+ expect(duck.row_rank).to eq(3)
62
+
63
+ Duck.create(name: "Wacky")
64
+
65
+ expect(duck.row_rank).to eq(3)
66
+
67
+ duck.update(pond: 'Shin')
68
+ expect(duck.row_rank).to eq(3)
69
+ end
70
+ end
71
+ end
@@ -6,6 +6,7 @@ sqlite:
6
6
 
7
7
  mysql:
8
8
  adapter: mysql2
9
+ host: 127.0.0.1
9
10
  database: ranked_model_test
10
11
  pool: 5
11
12
  timeout: 5000
@@ -14,6 +15,7 @@ mysql:
14
15
 
15
16
  postgresql:
16
17
  adapter: postgresql
18
+ host: 127.0.0.1
17
19
  database: ranked_model_test
18
20
  pool: 5
19
21
  timeout: 5000
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.7
4
+ version: 0.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Beale
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-16 00:00:00.000000000 Z
11
+ date: 2023-08-22 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.2'
19
+ version: '5.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.2'
26
+ version: '5.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 10.1.0
89
+ version: 12.3.3
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 10.1.0
96
+ version: 12.3.3
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: appraisal
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -130,6 +130,9 @@ executables: []
130
130
  extensions: []
131
131
  extra_rdoc_files: []
132
132
  files:
133
+ - ".github/FUNDING.yml"
134
+ - ".github/dependabot.yml"
135
+ - ".github/workflows/ci.yml"
133
136
  - ".gitignore"
134
137
  - ".rspec"
135
138
  - ".travis.yml"
@@ -138,11 +141,10 @@ files:
138
141
  - LICENSE
139
142
  - Rakefile
140
143
  - Readme.mkd
141
- - gemfiles/rails_4_2.gemfile
142
- - gemfiles/rails_5_0.gemfile
143
- - gemfiles/rails_5_1.gemfile
144
144
  - gemfiles/rails_5_2.gemfile
145
145
  - gemfiles/rails_6_0.gemfile
146
+ - gemfiles/rails_6_1.gemfile
147
+ - gemfiles/rails_7_0.gemfile
146
148
  - lib/ranked-model.rb
147
149
  - lib/ranked-model/railtie.rb
148
150
  - lib/ranked-model/ranker.rb
@@ -151,6 +153,7 @@ files:
151
153
  - ranked-model.gemspec
152
154
  - spec/duck-model/column_default_ducks_spec.rb
153
155
  - spec/duck-model/duck_spec.rb
156
+ - spec/duck-model/inferred_ducks_spec.rb
154
157
  - spec/duck-model/lots_of_ducks_spec.rb
155
158
  - spec/duck-model/wrong_ducks_spec.rb
156
159
  - spec/ego-model/ego_spec.rb
@@ -168,7 +171,7 @@ homepage: https://github.com/mixonic/ranked-model
168
171
  licenses:
169
172
  - MIT
170
173
  metadata: {}
171
- post_install_message:
174
+ post_install_message:
172
175
  rdoc_options: []
173
176
  require_paths:
174
177
  - lib
@@ -183,13 +186,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
186
  - !ruby/object:Gem::Version
184
187
  version: '0'
185
188
  requirements: []
186
- rubygems_version: 3.0.3
187
- signing_key:
189
+ rubygems_version: 3.2.32
190
+ signing_key:
188
191
  specification_version: 4
189
192
  summary: An acts_as_sortable replacement built for Rails 4.2+
190
193
  test_files:
191
194
  - spec/duck-model/column_default_ducks_spec.rb
192
195
  - spec/duck-model/duck_spec.rb
196
+ - spec/duck-model/inferred_ducks_spec.rb
193
197
  - spec/duck-model/lots_of_ducks_spec.rb
194
198
  - spec/duck-model/wrong_ducks_spec.rb
195
199
  - spec/ego-model/ego_spec.rb
@@ -1,23 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 4.2.0"
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 :postgresql do
13
- gem "pg", "~> 0.18.4", platform: :ruby
14
- gem "activerecord-jdbcpostgresql-adapter", "~> 1.3.24", platform: :jruby
15
- end
16
-
17
- group :mysql do
18
- gem "mysql2", "~> 0.4.0", platform: :ruby
19
- gem "jdbc-mysql", "~> 5.1.47", platform: :jruby
20
- gem "activerecord-jdbcmysql-adapter", "~> 1.3.24", platform: :jruby
21
- end
22
-
23
- gemspec path: "../"
@@ -1,22 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 5.0.0"
6
-
7
- group :sqlite do
8
- gem "sqlite3", "~> 1.3.13", platform: :ruby
9
- gem "activerecord-jdbcsqlite3-adapter", "~> 50.0", platform: :jruby
10
- end
11
-
12
- group :postgresql do
13
- gem "pg", "~> 1.2.0", platform: :ruby
14
- gem "activerecord-jdbcpostgresql-adapter", "~> 50.0", platform: :jruby
15
- end
16
-
17
- group :mysql do
18
- gem "mysql2", "~> 0.5.0", platform: :ruby
19
- gem "activerecord-jdbcmysql-adapter", "~> 50.0", platform: :jruby
20
- end
21
-
22
- gemspec path: "../"
@@ -1,22 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 5.1.0"
6
-
7
- group :sqlite do
8
- gem "sqlite3", "~> 1.3.13", platform: :ruby
9
- gem "activerecord-jdbcsqlite3-adapter", "~> 51.0", platform: :jruby
10
- end
11
-
12
- group :postgresql do
13
- gem "pg", "~> 1.2.0", platform: :ruby
14
- gem "activerecord-jdbcpostgresql-adapter", "~> 51.0", platform: :jruby
15
- end
16
-
17
- group :mysql do
18
- gem "mysql2", "~> 0.5.0", platform: :ruby
19
- gem "activerecord-jdbcmysql-adapter", "~> 51.0", platform: :jruby
20
- end
21
-
22
- gemspec path: "../"