api-pagination 4.8.2 → 5.0.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 +4 -4
- data/lib/api-pagination/version.rb +3 -3
- data/lib/api-pagination.rb +5 -5
- data/spec/api-pagination_spec.rb +1 -1
- data/spec/rails_spec.rb +5 -5
- metadata +106 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba0df72041cd862671500fd9efe94c7fe8e35975877e0e9bbcd1c0b77860e4a4
|
4
|
+
data.tar.gz: debcf49e29dcda50d93cd31a2e9efec2332541dbe38f6bdaa488b450e5bb7d09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4661d9bfa18456e1c6fcfb837ef4c3acbc9e35dd983299201340dc077056e3f5632c39a8f718b285d66b4e3985aec23da68a56c8c278f0fc850f27626352bb0b
|
7
|
+
data.tar.gz: 688fae38d680fb9f1b133a627172d687c7fa6f56186039a88a5bfe238e396c5310359266580644d7719b981d6f3589ac884f6b6d88688c497c8516cbffd122cd
|
data/lib/api-pagination.rb
CHANGED
@@ -47,10 +47,10 @@ module ApiPagination
|
|
47
47
|
private
|
48
48
|
|
49
49
|
def paginate_with_pagy(collection, options)
|
50
|
-
if Pagy::
|
51
|
-
options[:per_page] = Pagy::
|
50
|
+
if Pagy::DEFAULT[:max_per_page] && options[:per_page] > Pagy::DEFAULT[:max_per_page]
|
51
|
+
options[:per_page] = Pagy::DEFAULT[:max_per_page]
|
52
52
|
elsif options[:per_page] <= 0
|
53
|
-
options[:per_page] = Pagy::
|
53
|
+
options[:per_page] = Pagy::DEFAULT[:items]
|
54
54
|
end
|
55
55
|
|
56
56
|
pagy = pagy_from(collection, options)
|
@@ -69,7 +69,7 @@ module ApiPagination
|
|
69
69
|
else
|
70
70
|
count = collection.is_a?(Array) ? collection.count : collection.count(:all)
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
Pagy.new(count: count, items: options[:per_page], page: options[:page])
|
74
74
|
end
|
75
75
|
|
@@ -94,7 +94,7 @@ module ApiPagination
|
|
94
94
|
options[:per_page] = get_default_per_page_for_kaminari(collection)
|
95
95
|
end
|
96
96
|
|
97
|
-
collection = Kaminari.paginate_array(collection, paginate_array_options) if collection.is_a?(Array)
|
97
|
+
collection = Kaminari.paginate_array(collection, **paginate_array_options) if collection.is_a?(Array)
|
98
98
|
collection = collection.page(options[:page]).per(options[:per_page])
|
99
99
|
collection.without_count if !collection.is_a?(Array) && !ApiPagination.config.include_total
|
100
100
|
[collection, nil]
|
data/spec/api-pagination_spec.rb
CHANGED
@@ -11,7 +11,7 @@ describe ApiPagination do
|
|
11
11
|
describe '.paginate' do
|
12
12
|
it 'should accept paginate_array_options option' do
|
13
13
|
expect(Kaminari).to receive(:paginate_array)
|
14
|
-
.with(collection, paginate_array_options)
|
14
|
+
.with(collection, **paginate_array_options)
|
15
15
|
.and_call_original
|
16
16
|
|
17
17
|
ApiPagination.paginate(
|
data/spec/rails_spec.rb
CHANGED
@@ -262,7 +262,7 @@ describe NumbersController, :type => :controller do
|
|
262
262
|
end
|
263
263
|
end
|
264
264
|
|
265
|
-
after :all do
|
265
|
+
after :all do
|
266
266
|
class Fixnum
|
267
267
|
class << self
|
268
268
|
undef_method :default_per_page, :per_page
|
@@ -286,7 +286,7 @@ describe NumbersController, :type => :controller do
|
|
286
286
|
|
287
287
|
expect(response.header['Per-Page']).to eq(
|
288
288
|
case ApiPagination.config.paginator
|
289
|
-
when :pagy then Pagy::
|
289
|
+
when :pagy then Pagy::DEFAULT[:items].to_s
|
290
290
|
when :kaminari then Kaminari.config.default_per_page.to_s
|
291
291
|
when :will_paginate then WillPaginate.per_page.to_s
|
292
292
|
end
|
@@ -295,13 +295,13 @@ describe NumbersController, :type => :controller do
|
|
295
295
|
end
|
296
296
|
end
|
297
297
|
|
298
|
-
context 'default per page in objects without paginator defaults' do
|
298
|
+
context 'default per page in objects without paginator defaults' do
|
299
299
|
it 'should not fail if model does not respond to per page' do
|
300
300
|
get :index_with_no_per_page, params: {count: 100}
|
301
301
|
|
302
302
|
expect(response.header['Per-Page']).to eq(
|
303
303
|
case ApiPagination.config.paginator
|
304
|
-
when :pagy then Pagy::
|
304
|
+
when :pagy then Pagy::DEFAULT[:items].to_s
|
305
305
|
when :kaminari then Kaminari.config.default_per_page.to_s
|
306
306
|
when :will_paginate then WillPaginate.per_page.to_s
|
307
307
|
end
|
@@ -309,4 +309,4 @@ describe NumbersController, :type => :controller do
|
|
309
309
|
end
|
310
310
|
end
|
311
311
|
end
|
312
|
-
end
|
312
|
+
end
|
metadata
CHANGED
@@ -1,99 +1,171 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api-pagination
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Celis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: kaminari
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '1.2'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.2.1
|
20
23
|
type: :development
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - "~>"
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
29
|
+
version: '1.2'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.2.1
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
34
|
+
name: pagy
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '5.1'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 5.1.2
|
43
|
+
type: :development
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '5.1'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 5.1.2
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: will_paginate
|
29
55
|
requirement: !ruby/object:Gem::Requirement
|
30
56
|
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '3.3'
|
31
60
|
- - ">="
|
32
61
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
62
|
+
version: 3.3.1
|
34
63
|
type: :development
|
35
64
|
prerelease: false
|
36
65
|
version_requirements: !ruby/object:Gem::Requirement
|
37
66
|
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.3'
|
38
70
|
- - ">="
|
39
71
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
72
|
+
version: 3.3.1
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: rspec
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '3.10'
|
80
|
+
type: :development
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - "~>"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '3.10'
|
87
|
+
- !ruby/object:Gem::Dependency
|
88
|
+
name: grape
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - "~>"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '1.6'
|
94
|
+
type: :development
|
95
|
+
prerelease: false
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '1.6'
|
41
101
|
- !ruby/object:Gem::Dependency
|
42
102
|
name: railties
|
43
103
|
requirement: !ruby/object:Gem::Requirement
|
44
104
|
requirements:
|
105
|
+
- - "~>"
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '6.1'
|
45
108
|
- - ">="
|
46
109
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
110
|
+
version: 6.1.4.1
|
48
111
|
type: :development
|
49
112
|
prerelease: false
|
50
113
|
version_requirements: !ruby/object:Gem::Requirement
|
51
114
|
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '6.1'
|
52
118
|
- - ">="
|
53
119
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
120
|
+
version: 6.1.4.1
|
55
121
|
- !ruby/object:Gem::Dependency
|
56
122
|
name: actionpack
|
57
123
|
requirement: !ruby/object:Gem::Requirement
|
58
124
|
requirements:
|
125
|
+
- - "~>"
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '6.1'
|
59
128
|
- - ">="
|
60
129
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
130
|
+
version: 6.1.4.1
|
62
131
|
type: :development
|
63
132
|
prerelease: false
|
64
133
|
version_requirements: !ruby/object:Gem::Requirement
|
65
134
|
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '6.1'
|
66
138
|
- - ">="
|
67
139
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
140
|
+
version: 6.1.4.1
|
69
141
|
- !ruby/object:Gem::Dependency
|
70
142
|
name: sequel
|
71
143
|
requirement: !ruby/object:Gem::Requirement
|
72
144
|
requirements:
|
73
|
-
- - "
|
145
|
+
- - "~>"
|
74
146
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
147
|
+
version: '5.49'
|
76
148
|
type: :development
|
77
149
|
prerelease: false
|
78
150
|
version_requirements: !ruby/object:Gem::Requirement
|
79
151
|
requirements:
|
80
|
-
- - "
|
152
|
+
- - "~>"
|
81
153
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
154
|
+
version: '5.49'
|
83
155
|
- !ruby/object:Gem::Dependency
|
84
156
|
name: activerecord-nulldb-adapter
|
85
157
|
requirement: !ruby/object:Gem::Requirement
|
86
158
|
requirements:
|
87
|
-
- - "
|
159
|
+
- - "~>"
|
88
160
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
161
|
+
version: 0.7.0
|
90
162
|
type: :development
|
91
163
|
prerelease: false
|
92
164
|
version_requirements: !ruby/object:Gem::Requirement
|
93
165
|
requirements:
|
94
|
-
- - "
|
166
|
+
- - "~>"
|
95
167
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
168
|
+
version: 0.7.0
|
97
169
|
description: Link header pagination for Rails and Grape APIs
|
98
170
|
email:
|
99
171
|
- me@davidcel.is
|
@@ -126,38 +198,37 @@ homepage: https://github.com/davidcelis/api-pagination
|
|
126
198
|
licenses:
|
127
199
|
- MIT
|
128
200
|
metadata: {}
|
129
|
-
post_install_message:
|
201
|
+
post_install_message:
|
130
202
|
rdoc_options: []
|
131
203
|
require_paths:
|
132
204
|
- lib
|
133
205
|
required_ruby_version: !ruby/object:Gem::Requirement
|
134
206
|
requirements:
|
135
|
-
- - "
|
207
|
+
- - ">"
|
136
208
|
- !ruby/object:Gem::Version
|
137
|
-
version: '
|
209
|
+
version: '2.7'
|
138
210
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
211
|
requirements:
|
140
212
|
- - ">="
|
141
213
|
- !ruby/object:Gem::Version
|
142
214
|
version: '0'
|
143
215
|
requirements: []
|
144
|
-
|
145
|
-
|
146
|
-
signing_key:
|
216
|
+
rubygems_version: 3.2.22
|
217
|
+
signing_key:
|
147
218
|
specification_version: 4
|
148
219
|
summary: Link header pagination for Rails and Grape APIs. Don't use the request body.
|
149
220
|
test_files:
|
150
|
-
- spec/spec_helper.rb
|
151
|
-
- spec/api-pagination_spec.rb
|
152
221
|
- spec/active_record_spec.rb
|
222
|
+
- spec/api-pagination_spec.rb
|
223
|
+
- spec/grape_spec.rb
|
224
|
+
- spec/rails_spec.rb
|
153
225
|
- spec/sequel_spec.rb
|
154
|
-
- spec/
|
155
|
-
- spec/support/numbers_controller.rb
|
226
|
+
- spec/spec_helper.rb
|
156
227
|
- spec/support/active_record/foo.rb
|
157
228
|
- spec/support/active_record/schema.rb
|
229
|
+
- spec/support/numbers_api.rb
|
230
|
+
- spec/support/numbers_controller.rb
|
231
|
+
- spec/support/shared_examples/existing_headers.rb
|
158
232
|
- spec/support/shared_examples/first_page.rb
|
159
|
-
- spec/support/shared_examples/middle_page.rb
|
160
233
|
- spec/support/shared_examples/last_page.rb
|
161
|
-
- spec/support/shared_examples/
|
162
|
-
- spec/grape_spec.rb
|
163
|
-
- spec/rails_spec.rb
|
234
|
+
- spec/support/shared_examples/middle_page.rb
|