geared_pagination 1.1.2 → 1.2.0

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: 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: