geared_pagination 1.0.2 → 1.1.2
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 +4 -4
- data/.github/workflows/ci.yml +2 -2
- data/Gemfile.lock +116 -97
- data/geared_pagination.gemspec +1 -1
- data/lib/geared_pagination/cursor.rb +2 -0
- data/lib/geared_pagination/page.rb +5 -1
- data/lib/geared_pagination/recordset.rb +1 -1
- data/test/cursor_test.rb +5 -0
- data/test/dummy/config/environments/development.rb +0 -8
- data/test/dummy/config/initializers/assets.rb +0 -8
- data/test/page_test.rb +7 -2
- data/test/recordset_test.rb +6 -0
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e47e02d5c3c03e2a1fdcfefba1e637b18f657ae70cfd7ba856c8196549cdcd11
|
|
4
|
+
data.tar.gz: 1f14405e08bdad25c2d8a0d7b8d3beb6b60841f2b34c3f9b08eb63fd1260a348
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d48fc3e0cba4123df563a29081afd854f8af253c9ff39abb2a65e50bc83373974cd8cfb71334704ab3b9833cd43e32f364119d1475b46ec6dae54a2b7bc8f9c1
|
|
7
|
+
data.tar.gz: 743b038bbcc2d062fb4917b3c2842b9be34283e504b0150d74ba6260a021183267b68b7fc2806e31f0bd74021913be55fe046779d41bb6edda25be17eadd5785
|
data/.github/workflows/ci.yml
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,141 +1,160 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
geared_pagination (1.
|
|
4
|
+
geared_pagination (1.1.2)
|
|
5
5
|
activesupport (>= 5.0)
|
|
6
6
|
addressable (>= 2.5.0)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
actioncable (
|
|
12
|
-
actionpack (=
|
|
11
|
+
actioncable (7.0.3)
|
|
12
|
+
actionpack (= 7.0.3)
|
|
13
|
+
activesupport (= 7.0.3)
|
|
13
14
|
nio4r (~> 2.0)
|
|
14
15
|
websocket-driver (>= 0.6.1)
|
|
15
|
-
actionmailbox (
|
|
16
|
-
actionpack (=
|
|
17
|
-
activejob (=
|
|
18
|
-
activerecord (=
|
|
19
|
-
activestorage (=
|
|
20
|
-
activesupport (=
|
|
16
|
+
actionmailbox (7.0.3)
|
|
17
|
+
actionpack (= 7.0.3)
|
|
18
|
+
activejob (= 7.0.3)
|
|
19
|
+
activerecord (= 7.0.3)
|
|
20
|
+
activestorage (= 7.0.3)
|
|
21
|
+
activesupport (= 7.0.3)
|
|
21
22
|
mail (>= 2.7.1)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
net-imap
|
|
24
|
+
net-pop
|
|
25
|
+
net-smtp
|
|
26
|
+
actionmailer (7.0.3)
|
|
27
|
+
actionpack (= 7.0.3)
|
|
28
|
+
actionview (= 7.0.3)
|
|
29
|
+
activejob (= 7.0.3)
|
|
30
|
+
activesupport (= 7.0.3)
|
|
26
31
|
mail (~> 2.5, >= 2.5.4)
|
|
32
|
+
net-imap
|
|
33
|
+
net-pop
|
|
34
|
+
net-smtp
|
|
27
35
|
rails-dom-testing (~> 2.0)
|
|
28
|
-
actionpack (
|
|
29
|
-
actionview (=
|
|
30
|
-
activesupport (=
|
|
31
|
-
rack (~> 2.0, >= 2.0
|
|
36
|
+
actionpack (7.0.3)
|
|
37
|
+
actionview (= 7.0.3)
|
|
38
|
+
activesupport (= 7.0.3)
|
|
39
|
+
rack (~> 2.0, >= 2.2.0)
|
|
32
40
|
rack-test (>= 0.6.3)
|
|
33
41
|
rails-dom-testing (~> 2.0)
|
|
34
42
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
35
|
-
actiontext (
|
|
36
|
-
actionpack (=
|
|
37
|
-
activerecord (=
|
|
38
|
-
activestorage (=
|
|
39
|
-
activesupport (=
|
|
43
|
+
actiontext (7.0.3)
|
|
44
|
+
actionpack (= 7.0.3)
|
|
45
|
+
activerecord (= 7.0.3)
|
|
46
|
+
activestorage (= 7.0.3)
|
|
47
|
+
activesupport (= 7.0.3)
|
|
48
|
+
globalid (>= 0.6.0)
|
|
40
49
|
nokogiri (>= 1.8.5)
|
|
41
|
-
actionview (
|
|
42
|
-
activesupport (=
|
|
50
|
+
actionview (7.0.3)
|
|
51
|
+
activesupport (= 7.0.3)
|
|
43
52
|
builder (~> 3.1)
|
|
44
53
|
erubi (~> 1.4)
|
|
45
54
|
rails-dom-testing (~> 2.0)
|
|
46
55
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
47
|
-
activejob (
|
|
48
|
-
activesupport (=
|
|
56
|
+
activejob (7.0.3)
|
|
57
|
+
activesupport (= 7.0.3)
|
|
49
58
|
globalid (>= 0.3.6)
|
|
50
|
-
activemodel (
|
|
51
|
-
activesupport (=
|
|
52
|
-
activerecord (
|
|
53
|
-
activemodel (=
|
|
54
|
-
activesupport (=
|
|
55
|
-
activestorage (
|
|
56
|
-
actionpack (=
|
|
57
|
-
activejob (=
|
|
58
|
-
activerecord (=
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
activemodel (7.0.3)
|
|
60
|
+
activesupport (= 7.0.3)
|
|
61
|
+
activerecord (7.0.3)
|
|
62
|
+
activemodel (= 7.0.3)
|
|
63
|
+
activesupport (= 7.0.3)
|
|
64
|
+
activestorage (7.0.3)
|
|
65
|
+
actionpack (= 7.0.3)
|
|
66
|
+
activejob (= 7.0.3)
|
|
67
|
+
activerecord (= 7.0.3)
|
|
68
|
+
activesupport (= 7.0.3)
|
|
69
|
+
marcel (~> 1.0)
|
|
70
|
+
mini_mime (>= 1.1.0)
|
|
71
|
+
activesupport (7.0.3)
|
|
61
72
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
62
|
-
i18n (>=
|
|
63
|
-
minitest (
|
|
64
|
-
tzinfo (~>
|
|
65
|
-
|
|
66
|
-
addressable (2.7.0)
|
|
73
|
+
i18n (>= 1.6, < 2)
|
|
74
|
+
minitest (>= 5.1)
|
|
75
|
+
tzinfo (~> 2.0)
|
|
76
|
+
addressable (2.8.0)
|
|
67
77
|
public_suffix (>= 2.0.2, < 5.0)
|
|
68
78
|
builder (3.2.4)
|
|
69
|
-
byebug (
|
|
70
|
-
concurrent-ruby (1.1.
|
|
79
|
+
byebug (11.1.3)
|
|
80
|
+
concurrent-ruby (1.1.10)
|
|
71
81
|
crass (1.0.6)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
82
|
+
digest (3.1.0)
|
|
83
|
+
erubi (1.10.0)
|
|
84
|
+
globalid (1.0.0)
|
|
85
|
+
activesupport (>= 5.0)
|
|
86
|
+
i18n (1.10.0)
|
|
76
87
|
concurrent-ruby (~> 1.0)
|
|
77
|
-
loofah (2.
|
|
88
|
+
loofah (2.18.0)
|
|
78
89
|
crass (~> 1.0.2)
|
|
79
90
|
nokogiri (>= 1.5.9)
|
|
80
91
|
mail (2.7.1)
|
|
81
92
|
mini_mime (>= 0.1.1)
|
|
82
|
-
marcel (0.
|
|
83
|
-
mimemagic (~> 0.3.2)
|
|
93
|
+
marcel (1.0.2)
|
|
84
94
|
method_source (1.0.0)
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
95
|
+
mini_mime (1.1.2)
|
|
96
|
+
mini_portile2 (2.8.0)
|
|
97
|
+
minitest (5.15.0)
|
|
98
|
+
net-imap (0.2.3)
|
|
99
|
+
digest
|
|
100
|
+
net-protocol
|
|
101
|
+
strscan
|
|
102
|
+
net-pop (0.1.1)
|
|
103
|
+
digest
|
|
104
|
+
net-protocol
|
|
105
|
+
timeout
|
|
106
|
+
net-protocol (0.1.3)
|
|
107
|
+
timeout
|
|
108
|
+
net-smtp (0.3.1)
|
|
109
|
+
digest
|
|
110
|
+
net-protocol
|
|
111
|
+
timeout
|
|
112
|
+
nio4r (2.5.8)
|
|
113
|
+
nokogiri (1.13.6)
|
|
114
|
+
mini_portile2 (~> 2.8.0)
|
|
115
|
+
racc (~> 1.4)
|
|
116
|
+
public_suffix (4.0.7)
|
|
117
|
+
racc (1.6.0)
|
|
118
|
+
rack (2.2.3.1)
|
|
94
119
|
rack-test (1.1.0)
|
|
95
120
|
rack (>= 1.0, < 3)
|
|
96
|
-
rails (
|
|
97
|
-
actioncable (=
|
|
98
|
-
actionmailbox (=
|
|
99
|
-
actionmailer (=
|
|
100
|
-
actionpack (=
|
|
101
|
-
actiontext (=
|
|
102
|
-
actionview (=
|
|
103
|
-
activejob (=
|
|
104
|
-
activemodel (=
|
|
105
|
-
activerecord (=
|
|
106
|
-
activestorage (=
|
|
107
|
-
activesupport (=
|
|
108
|
-
bundler (>= 1.
|
|
109
|
-
railties (=
|
|
110
|
-
sprockets-rails (>= 2.0.0)
|
|
121
|
+
rails (7.0.3)
|
|
122
|
+
actioncable (= 7.0.3)
|
|
123
|
+
actionmailbox (= 7.0.3)
|
|
124
|
+
actionmailer (= 7.0.3)
|
|
125
|
+
actionpack (= 7.0.3)
|
|
126
|
+
actiontext (= 7.0.3)
|
|
127
|
+
actionview (= 7.0.3)
|
|
128
|
+
activejob (= 7.0.3)
|
|
129
|
+
activemodel (= 7.0.3)
|
|
130
|
+
activerecord (= 7.0.3)
|
|
131
|
+
activestorage (= 7.0.3)
|
|
132
|
+
activesupport (= 7.0.3)
|
|
133
|
+
bundler (>= 1.15.0)
|
|
134
|
+
railties (= 7.0.3)
|
|
111
135
|
rails-dom-testing (2.0.3)
|
|
112
136
|
activesupport (>= 4.2.0)
|
|
113
137
|
nokogiri (>= 1.6)
|
|
114
|
-
rails-html-sanitizer (1.3
|
|
138
|
+
rails-html-sanitizer (1.4.3)
|
|
115
139
|
loofah (~> 2.3)
|
|
116
|
-
railties (
|
|
117
|
-
actionpack (=
|
|
118
|
-
activesupport (=
|
|
140
|
+
railties (7.0.3)
|
|
141
|
+
actionpack (= 7.0.3)
|
|
142
|
+
activesupport (= 7.0.3)
|
|
119
143
|
method_source
|
|
120
|
-
rake (>=
|
|
121
|
-
thor (
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
concurrent-ruby (~> 1.0)
|
|
125
|
-
rack (> 1, < 3)
|
|
126
|
-
sprockets-rails (3.2.1)
|
|
127
|
-
actionpack (>= 4.0)
|
|
128
|
-
activesupport (>= 4.0)
|
|
129
|
-
sprockets (>= 3.0.0)
|
|
144
|
+
rake (>= 12.2)
|
|
145
|
+
thor (~> 1.0)
|
|
146
|
+
zeitwerk (~> 2.5)
|
|
147
|
+
rake (13.0.6)
|
|
130
148
|
sqlite3 (1.4.2)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
149
|
+
strscan (3.0.3)
|
|
150
|
+
thor (1.2.1)
|
|
151
|
+
timeout (0.3.0)
|
|
152
|
+
tzinfo (2.0.4)
|
|
153
|
+
concurrent-ruby (~> 1.0)
|
|
154
|
+
websocket-driver (0.7.5)
|
|
136
155
|
websocket-extensions (>= 0.1.0)
|
|
137
|
-
websocket-extensions (0.1.
|
|
138
|
-
zeitwerk (2.
|
|
156
|
+
websocket-extensions (0.1.5)
|
|
157
|
+
zeitwerk (2.5.4)
|
|
139
158
|
|
|
140
159
|
PLATFORMS
|
|
141
160
|
ruby
|
|
@@ -149,4 +168,4 @@ DEPENDENCIES
|
|
|
149
168
|
sqlite3
|
|
150
169
|
|
|
151
170
|
BUNDLED WITH
|
|
152
|
-
|
|
171
|
+
2.3.15
|
data/geared_pagination.gemspec
CHANGED
data/test/cursor_test.rb
CHANGED
|
@@ -7,6 +7,11 @@ class GearedPagination::CursorTest < ActiveSupport::TestCase
|
|
|
7
7
|
assert_equal 1, GearedPagination::Cursor.from_param(" ").page_number
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
+
test "from an invalid param" do
|
|
11
|
+
assert_equal 1, GearedPagination::Cursor.from_param("aGVsbG8K").page_number
|
|
12
|
+
assert_equal 1, GearedPagination::Cursor.from_param("\o/ not base64").page_number
|
|
13
|
+
end
|
|
14
|
+
|
|
10
15
|
test "decode" do
|
|
11
16
|
assert_equal 1, GearedPagination::Cursor.decode("eyJwYWdlX251bWJlciI6MX0=").page_number
|
|
12
17
|
end
|
|
@@ -44,14 +44,6 @@ Rails.application.configure do
|
|
|
44
44
|
# Highlight code that triggered database queries in logs.
|
|
45
45
|
config.active_record.verbose_query_logs = true
|
|
46
46
|
|
|
47
|
-
# Debug mode disables concatenation and preprocessing of assets.
|
|
48
|
-
# This option may cause significant delays in view rendering with a large
|
|
49
|
-
# number of complex assets.
|
|
50
|
-
config.assets.debug = true
|
|
51
|
-
|
|
52
|
-
# Suppress logger output for asset requests.
|
|
53
|
-
config.assets.quiet = true
|
|
54
|
-
|
|
55
47
|
# Raises error for missing translations
|
|
56
48
|
# config.action_view.raise_on_missing_translations = true
|
|
57
49
|
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
# Be sure to restart your server when you modify this file.
|
|
2
2
|
|
|
3
|
-
# Version of your assets, change this if you want to expire all your assets.
|
|
4
|
-
Rails.application.config.assets.version = '1.0'
|
|
5
|
-
|
|
6
|
-
# Add additional assets to the asset load path.
|
|
7
|
-
# Rails.application.config.assets.paths << Emoji.images_path
|
|
8
|
-
# Add Yarn node_modules folder to the asset load path.
|
|
9
|
-
Rails.application.config.assets.paths << Rails.root.join('node_modules')
|
|
10
|
-
|
|
11
3
|
# Precompile additional assets.
|
|
12
4
|
# application.js, application.css, and all non-JS/CSS in the app/assets
|
|
13
5
|
# folder are already added.
|
data/test/page_test.rb
CHANGED
|
@@ -20,8 +20,13 @@ class GearedPagination::PageTest < ActiveSupport::TestCase
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
test "last with page number greater than page count" do
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
assert_not GearedPagination::Recordset.new(Recording.none, per_page: 1000).page(2).last?
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
test "before_last" do
|
|
27
|
+
assert GearedPagination::Recordset.new(Recording.all, per_page: 1).page(1).before_last?
|
|
28
|
+
assert_not GearedPagination::Recordset.new(Recording.all, per_page: 1000).page(1).before_last?
|
|
29
|
+
assert_not GearedPagination::Recordset.new(Recording.none, per_page: 1000).page(2).before_last?
|
|
25
30
|
end
|
|
26
31
|
|
|
27
32
|
test "next offset param" do
|
data/test/recordset_test.rb
CHANGED
|
@@ -70,4 +70,10 @@ class GearedPagination::RecordsetTest < ActiveSupport::TestCase
|
|
|
70
70
|
test "records count" do
|
|
71
71
|
assert_equal Recording.all.count, GearedPagination::Recordset.new(Recording.all, per_page: [ 10, 15, 20 ]).records_count
|
|
72
72
|
end
|
|
73
|
+
|
|
74
|
+
test "unscope select for count" do
|
|
75
|
+
select_scoped_records = Recording.all.select(:id, :number)
|
|
76
|
+
recordset = GearedPagination::Recordset.new(select_scoped_records, per_page: [ 10, 15, 20 ])
|
|
77
|
+
assert_equal Recording.all.count, recordset.records_count
|
|
78
|
+
end
|
|
73
79
|
end
|
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.
|
|
4
|
+
version: 1.1.2
|
|
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:
|
|
11
|
+
date: 2022-06-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -52,7 +52,7 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '1.12'
|
|
55
|
-
description:
|
|
55
|
+
description:
|
|
56
56
|
email: david@basecamp.com
|
|
57
57
|
executables: []
|
|
58
58
|
extensions: []
|
|
@@ -162,7 +162,7 @@ homepage: https://github.com/basecamp/geared_pagination
|
|
|
162
162
|
licenses:
|
|
163
163
|
- MIT
|
|
164
164
|
metadata: {}
|
|
165
|
-
post_install_message:
|
|
165
|
+
post_install_message:
|
|
166
166
|
rdoc_options: []
|
|
167
167
|
require_paths:
|
|
168
168
|
- lib
|
|
@@ -177,8 +177,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
177
177
|
- !ruby/object:Gem::Version
|
|
178
178
|
version: '0'
|
|
179
179
|
requirements: []
|
|
180
|
-
rubygems_version: 3.
|
|
181
|
-
signing_key:
|
|
180
|
+
rubygems_version: 3.1.6
|
|
181
|
+
signing_key:
|
|
182
182
|
specification_version: 4
|
|
183
183
|
summary: Paginate Active Record sets at variable speeds
|
|
184
184
|
test_files:
|