geared_pagination 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e47e02d5c3c03e2a1fdcfefba1e637b18f657ae70cfd7ba856c8196549cdcd11
4
- data.tar.gz: 1f14405e08bdad25c2d8a0d7b8d3beb6b60841f2b34c3f9b08eb63fd1260a348
3
+ metadata.gz: dcd6217ccba91dc6481791650dd5906e390d45acf4fb71caf0c34d76eedaea83
4
+ data.tar.gz: 68a65630d9dc8cd95c236dcbf313aa2c4076c09a06ee0ccb9175a175857072f6
5
5
  SHA512:
6
- metadata.gz: d48fc3e0cba4123df563a29081afd854f8af253c9ff39abb2a65e50bc83373974cd8cfb71334704ab3b9833cd43e32f364119d1475b46ec6dae54a2b7bc8f9c1
7
- data.tar.gz: 743b038bbcc2d062fb4917b3c2842b9be34283e504b0150d74ba6260a021183267b68b7fc2806e31f0bd74021913be55fe046779d41bb6edda25be17eadd5785
6
+ metadata.gz: 86686dda8a790f044b647946737c6ebb238a370f77ea0aea7f3c22d3335779b9ce6ee1bd89c43a62d66d3e6299769a6d70ae48f86fbce1df09df8106e113069f
7
+ data.tar.gz: 9d0a5ea64551d9978cb366411e8b1141ae09deab60e6f8ff24b4485122a155e17156060b73bd76802a37f3b124dd79c7d51c2ed83b308d4a9841a7923680b295
@@ -2,22 +2,19 @@ name: CI
2
2
  on: [push, pull_request]
3
3
  jobs:
4
4
  tests:
5
+ strategy:
6
+ fail-fast: false
7
+ matrix:
8
+ ruby: ["2.7", "3.0", "3.1", "3.2"]
5
9
  runs-on: ubuntu-latest
6
10
 
7
11
  steps:
8
- - uses: actions/checkout@v1
9
-
12
+ - uses: actions/checkout@v4
10
13
  - name: Set up Ruby 2.7
11
- uses: actions/setup-ruby@v1
12
- with:
13
- ruby-version: 2.7.x
14
-
15
- - name: Cache gem dependencies
16
- uses: actions/cache@v1
14
+ uses: ruby/setup-ruby@v1
17
15
  with:
18
- path: vendor/bundle
19
- key: ${{ runner.os }}-bundler-${{ hashFiles('**/Gemfile.lock') }}
20
- restore-keys: ${{ runner.os }}-bundler-
16
+ ruby-version: ${{ matrix.ruby }}
17
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
21
18
 
22
19
  - name: Install system dependencies
23
20
  run: sudo apt-get update && sudo apt-get install libsqlite3-dev
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- geared_pagination (1.1.2)
4
+ geared_pagination (1.2.0)
5
5
  activesupport (>= 5.0)
6
6
  addressable (>= 2.5.0)
7
7
 
@@ -73,8 +73,8 @@ GEM
73
73
  i18n (>= 1.6, < 2)
74
74
  minitest (>= 5.1)
75
75
  tzinfo (~> 2.0)
76
- addressable (2.8.0)
77
- public_suffix (>= 2.0.2, < 5.0)
76
+ addressable (2.8.5)
77
+ public_suffix (>= 2.0.2, < 6.0)
78
78
  builder (3.2.4)
79
79
  byebug (11.1.3)
80
80
  concurrent-ruby (1.1.10)
@@ -113,7 +113,7 @@ GEM
113
113
  nokogiri (1.13.6)
114
114
  mini_portile2 (~> 2.8.0)
115
115
  racc (~> 1.4)
116
- public_suffix (4.0.7)
116
+ public_suffix (5.0.4)
117
117
  racc (1.6.0)
118
118
  rack (2.2.3.1)
119
119
  rack-test (1.1.0)
@@ -160,7 +160,7 @@ PLATFORMS
160
160
  ruby
161
161
 
162
162
  DEPENDENCIES
163
- bundler (~> 1.12)
163
+ bundler
164
164
  byebug
165
165
  geared_pagination!
166
166
  rails (>= 5.0)
data/bin/release ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env bash
2
+
3
+ VERSION=$1
4
+
5
+ printf "module GearedPagination\n VERSION = \"$VERSION\"\nend\n" > ./lib/geared_pagination/version.rb
6
+ bundle
7
+ git add Gemfile.lock lib/geared_pagination/version.rb
8
+ git commit -m "Bump version for $VERSION"
9
+ git push
10
+ git tag v$VERSION
11
+ git push --tags
12
+ gem build geared_pagination.gemspec
13
+ gem push "geared_pagination-$VERSION.gem" --host https://rubygems.org
data/bin/test ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path("../test", __dir__)
3
+
4
+ puts "Installing Ruby dependencies"
5
+ `bundle install`
6
+
7
+ require "bundler/setup"
8
+ require "rails/plugin/test"
@@ -1,6 +1,8 @@
1
+ require_relative "lib/geared_pagination/version"
2
+
1
3
  Gem::Specification.new do |s|
2
4
  s.name = 'geared_pagination'
3
- s.version = '1.1.2'
5
+ s.version = GearedPagination::VERSION
4
6
  s.authors = 'David Heinemeier Hansson'
5
7
  s.email = 'david@basecamp.com'
6
8
  s.summary = 'Paginate Active Record sets at variable speeds'
@@ -12,7 +14,7 @@ Gem::Specification.new do |s|
12
14
  s.add_dependency 'activesupport', '>= 5.0'
13
15
  s.add_dependency 'addressable', '>= 2.5.0'
14
16
 
15
- s.add_development_dependency 'bundler', '~> 1.12'
17
+ s.add_development_dependency 'bundler'
16
18
 
17
19
  s.files = `git ls-files`.split("\n")
18
20
  s.test_files = `git ls-files -- test/*`.split("\n")
@@ -7,4 +7,10 @@ class GearedPagination::Engine < ::Rails::Engine
7
7
  ActionController::Base.send :include, GearedPagination::Controller
8
8
  end
9
9
  end
10
+
11
+ if GearedPagination.rails_7_1?
12
+ initializer "geared_pagination.deprecator" do |app|
13
+ app.deprecators[:geared_pagination] = GearedPagination.deprecator
14
+ end
15
+ end
10
16
  end
@@ -48,7 +48,11 @@ module GearedPagination
48
48
  end
49
49
 
50
50
  alias_method :next_number, :next_param
51
- deprecate next_number: "use #next_param instead"
51
+ if GearedPagination.rails_7_1?
52
+ deprecate next_number: "use #next_param instead", deprecator: GearedPagination.deprecator
53
+ else
54
+ deprecate next_number: "use #next_param instead"
55
+ end
52
56
 
53
57
 
54
58
  def cache_key
@@ -12,10 +12,13 @@ module GearedPagination
12
12
  end
13
13
 
14
14
  def from(scope)
15
- if scope.order_values.none? && scope.limit_value.nil?
16
- selection_from(scope).order(orderings).limit(limit)
17
- else
18
- raise ArgumentError, "Can't paginate relation with ORDER BY or LIMIT clauses (got #{scope.to_sql})"
15
+ @froms ||= {}
16
+ @froms[scope] ||= begin
17
+ if scope.order_values.none? && scope.limit_value.nil?
18
+ selection_from(scope).order(orderings).limit(limit)
19
+ else
20
+ raise ArgumentError, "Can't paginate relation with ORDER BY or LIMIT clauses (got #{scope.to_sql})"
21
+ end
19
22
  end
20
23
  end
21
24
 
@@ -0,0 +1,3 @@
1
+ module GearedPagination
2
+ VERSION = "1.2.0"
3
+ end
@@ -1,2 +1,15 @@
1
+ require 'active_support/deprecation'
2
+ require_relative "geared_pagination/version"
3
+
4
+ module GearedPagination
5
+ def self.rails_7_1?
6
+ Rails.version >= "7.1.0" rescue false
7
+ end
8
+
9
+ def self.deprecator
10
+ @deprecator ||= ActiveSupport::Deprecation.new(VERSION, "GearedPagination")
11
+ end
12
+ end
13
+
1
14
  require 'geared_pagination/recordset'
2
15
  require 'geared_pagination/engine' if defined?(Rails)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geared_pagination
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-13 00:00:00.000000000 Z
11
+ date: 2023-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -42,17 +42,17 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.12'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.12'
55
- description:
54
+ version: '0'
55
+ description:
56
56
  email: david@basecamp.com
57
57
  executables: []
58
58
  extensions: []
@@ -66,6 +66,8 @@ files:
66
66
  - README.md
67
67
  - Rakefile
68
68
  - bin/rails
69
+ - bin/release
70
+ - bin/test
69
71
  - geared_pagination.gemspec
70
72
  - lib/geared_pagination.rb
71
73
  - lib/geared_pagination/controller.rb
@@ -79,6 +81,7 @@ files:
79
81
  - lib/geared_pagination/portions/portion_at_offset.rb
80
82
  - lib/geared_pagination/ratios.rb
81
83
  - lib/geared_pagination/recordset.rb
84
+ - lib/geared_pagination/version.rb
82
85
  - test/controller_test.rb
83
86
  - test/cursor_test.rb
84
87
  - test/dummy/Rakefile
@@ -162,7 +165,7 @@ homepage: https://github.com/basecamp/geared_pagination
162
165
  licenses:
163
166
  - MIT
164
167
  metadata: {}
165
- post_install_message:
168
+ post_install_message:
166
169
  rdoc_options: []
167
170
  require_paths:
168
171
  - lib
@@ -177,8 +180,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
180
  - !ruby/object:Gem::Version
178
181
  version: '0'
179
182
  requirements: []
180
- rubygems_version: 3.1.6
181
- signing_key:
183
+ rubygems_version: 3.4.20
184
+ signing_key:
182
185
  specification_version: 4
183
186
  summary: Paginate Active Record sets at variable speeds
184
187
  test_files: