api-pagination 4.8.2 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|