api-pagination 4.8.2 → 6.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 +8 -8
- data/spec/api-pagination_spec.rb +1 -1
- data/spec/rails_spec.rb +5 -5
- metadata +100 -35
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0aeee41828ccf353b3be509b5ddc10f180cb238d9b12bb8c357dc3ddfd35f07e
|
|
4
|
+
data.tar.gz: d2e33f4bf383e78f99d9e0d5ee6878e6fa54c8f9ad7412de18d23cadf45ec650
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c45ef1013c9a791da01d230be2f1a719af87a658b7ba7ab5a2643959eebe9bed8c7935f591f3077a8ed9db5822d561299a9fad87b8347faa3d45b7e6bab70cfc
|
|
7
|
+
data.tar.gz: 81e9f814f3ba16bcf86f1a07a26d7ac951e1dbc8a13221e9ef6db207861389ee301b6cb2c1923ff3deffc5718bc203070c0f4b77fca64535abe26f62590fdd6f
|
data/lib/api-pagination.rb
CHANGED
|
@@ -47,17 +47,17 @@ 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[:limit]
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
pagy = pagy_from(collection, options)
|
|
57
57
|
collection = if collection.respond_to?(:offset) && collection.respond_to?(:limit)
|
|
58
|
-
collection.offset(pagy.offset).limit(pagy.
|
|
58
|
+
collection.offset(pagy.offset).limit(pagy.limit)
|
|
59
59
|
else
|
|
60
|
-
collection[pagy.offset, pagy.
|
|
60
|
+
collection[pagy.offset, pagy.limit]
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
return [collection, pagy]
|
|
@@ -69,8 +69,8 @@ module ApiPagination
|
|
|
69
69
|
else
|
|
70
70
|
count = collection.is_a?(Array) ? collection.count : collection.count(:all)
|
|
71
71
|
end
|
|
72
|
-
|
|
73
|
-
Pagy.new(count: count,
|
|
72
|
+
|
|
73
|
+
Pagy.new(count: count, limit: options[:per_page], page: options[:page])
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
def pagy_pages_from(pagy)
|
|
@@ -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[:limit].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[:limit].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,165 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: api-pagination
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 6.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: 2024-07-29 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: '9.0'
|
|
40
|
+
type: :development
|
|
41
|
+
prerelease: false
|
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '9.0'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: will_paginate
|
|
29
49
|
requirement: !ruby/object:Gem::Requirement
|
|
30
50
|
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '3.3'
|
|
31
54
|
- - ">="
|
|
32
55
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
56
|
+
version: 3.3.1
|
|
34
57
|
type: :development
|
|
35
58
|
prerelease: false
|
|
36
59
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
60
|
requirements:
|
|
61
|
+
- - "~>"
|
|
62
|
+
- !ruby/object:Gem::Version
|
|
63
|
+
version: '3.3'
|
|
38
64
|
- - ">="
|
|
39
65
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
66
|
+
version: 3.3.1
|
|
67
|
+
- !ruby/object:Gem::Dependency
|
|
68
|
+
name: rspec
|
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
|
70
|
+
requirements:
|
|
71
|
+
- - "~>"
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
version: '3.10'
|
|
74
|
+
type: :development
|
|
75
|
+
prerelease: false
|
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
77
|
+
requirements:
|
|
78
|
+
- - "~>"
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: '3.10'
|
|
81
|
+
- !ruby/object:Gem::Dependency
|
|
82
|
+
name: grape
|
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
|
84
|
+
requirements:
|
|
85
|
+
- - "~>"
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '1.6'
|
|
88
|
+
type: :development
|
|
89
|
+
prerelease: false
|
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
91
|
+
requirements:
|
|
92
|
+
- - "~>"
|
|
93
|
+
- !ruby/object:Gem::Version
|
|
94
|
+
version: '1.6'
|
|
41
95
|
- !ruby/object:Gem::Dependency
|
|
42
96
|
name: railties
|
|
43
97
|
requirement: !ruby/object:Gem::Requirement
|
|
44
98
|
requirements:
|
|
99
|
+
- - "~>"
|
|
100
|
+
- !ruby/object:Gem::Version
|
|
101
|
+
version: '6.1'
|
|
45
102
|
- - ">="
|
|
46
103
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
104
|
+
version: 6.1.4.1
|
|
48
105
|
type: :development
|
|
49
106
|
prerelease: false
|
|
50
107
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
108
|
requirements:
|
|
109
|
+
- - "~>"
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
111
|
+
version: '6.1'
|
|
52
112
|
- - ">="
|
|
53
113
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
114
|
+
version: 6.1.4.1
|
|
55
115
|
- !ruby/object:Gem::Dependency
|
|
56
116
|
name: actionpack
|
|
57
117
|
requirement: !ruby/object:Gem::Requirement
|
|
58
118
|
requirements:
|
|
119
|
+
- - "~>"
|
|
120
|
+
- !ruby/object:Gem::Version
|
|
121
|
+
version: '6.1'
|
|
59
122
|
- - ">="
|
|
60
123
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
124
|
+
version: 6.1.4.1
|
|
62
125
|
type: :development
|
|
63
126
|
prerelease: false
|
|
64
127
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
128
|
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '6.1'
|
|
66
132
|
- - ">="
|
|
67
133
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
134
|
+
version: 6.1.4.1
|
|
69
135
|
- !ruby/object:Gem::Dependency
|
|
70
136
|
name: sequel
|
|
71
137
|
requirement: !ruby/object:Gem::Requirement
|
|
72
138
|
requirements:
|
|
73
|
-
- - "
|
|
139
|
+
- - "~>"
|
|
74
140
|
- !ruby/object:Gem::Version
|
|
75
|
-
version:
|
|
141
|
+
version: '5.49'
|
|
76
142
|
type: :development
|
|
77
143
|
prerelease: false
|
|
78
144
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
145
|
requirements:
|
|
80
|
-
- - "
|
|
146
|
+
- - "~>"
|
|
81
147
|
- !ruby/object:Gem::Version
|
|
82
|
-
version:
|
|
148
|
+
version: '5.49'
|
|
83
149
|
- !ruby/object:Gem::Dependency
|
|
84
150
|
name: activerecord-nulldb-adapter
|
|
85
151
|
requirement: !ruby/object:Gem::Requirement
|
|
86
152
|
requirements:
|
|
87
|
-
- - "
|
|
153
|
+
- - "~>"
|
|
88
154
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 0.
|
|
155
|
+
version: 0.7.0
|
|
90
156
|
type: :development
|
|
91
157
|
prerelease: false
|
|
92
158
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
159
|
requirements:
|
|
94
|
-
- - "
|
|
160
|
+
- - "~>"
|
|
95
161
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 0.
|
|
162
|
+
version: 0.7.0
|
|
97
163
|
description: Link header pagination for Rails and Grape APIs
|
|
98
164
|
email:
|
|
99
165
|
- me@davidcel.is
|
|
@@ -126,38 +192,37 @@ homepage: https://github.com/davidcelis/api-pagination
|
|
|
126
192
|
licenses:
|
|
127
193
|
- MIT
|
|
128
194
|
metadata: {}
|
|
129
|
-
post_install_message:
|
|
195
|
+
post_install_message:
|
|
130
196
|
rdoc_options: []
|
|
131
197
|
require_paths:
|
|
132
198
|
- lib
|
|
133
199
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
200
|
requirements:
|
|
135
|
-
- - "
|
|
201
|
+
- - ">"
|
|
136
202
|
- !ruby/object:Gem::Version
|
|
137
|
-
version: '
|
|
203
|
+
version: '2.7'
|
|
138
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
205
|
requirements:
|
|
140
206
|
- - ">="
|
|
141
207
|
- !ruby/object:Gem::Version
|
|
142
208
|
version: '0'
|
|
143
209
|
requirements: []
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
signing_key:
|
|
210
|
+
rubygems_version: 3.5.16
|
|
211
|
+
signing_key:
|
|
147
212
|
specification_version: 4
|
|
148
213
|
summary: Link header pagination for Rails and Grape APIs. Don't use the request body.
|
|
149
214
|
test_files:
|
|
150
|
-
- spec/spec_helper.rb
|
|
151
|
-
- spec/api-pagination_spec.rb
|
|
152
215
|
- spec/active_record_spec.rb
|
|
216
|
+
- spec/api-pagination_spec.rb
|
|
217
|
+
- spec/grape_spec.rb
|
|
218
|
+
- spec/rails_spec.rb
|
|
153
219
|
- spec/sequel_spec.rb
|
|
154
|
-
- spec/
|
|
155
|
-
- spec/support/numbers_controller.rb
|
|
220
|
+
- spec/spec_helper.rb
|
|
156
221
|
- spec/support/active_record/foo.rb
|
|
157
222
|
- spec/support/active_record/schema.rb
|
|
223
|
+
- spec/support/numbers_api.rb
|
|
224
|
+
- spec/support/numbers_controller.rb
|
|
225
|
+
- spec/support/shared_examples/existing_headers.rb
|
|
158
226
|
- spec/support/shared_examples/first_page.rb
|
|
159
|
-
- spec/support/shared_examples/middle_page.rb
|
|
160
227
|
- spec/support/shared_examples/last_page.rb
|
|
161
|
-
- spec/support/shared_examples/
|
|
162
|
-
- spec/grape_spec.rb
|
|
163
|
-
- spec/rails_spec.rb
|
|
228
|
+
- spec/support/shared_examples/middle_page.rb
|