File tree Expand file tree Collapse file tree 2 files changed +33
-3
lines changed Expand file tree Collapse file tree 2 files changed +33
-3
lines changed Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ def paginate(collection, options = {})
10
10
11
11
case ApiPagination . config . paginator
12
12
when :kaminari
13
- paginate_with_kaminari ( collection , options )
13
+ paginate_with_kaminari ( collection , options , options [ :paginate_array_options ] || { } )
14
14
when :will_paginate
15
15
paginate_with_will_paginate ( collection , options )
16
16
else
@@ -56,14 +56,14 @@ def total_header
56
56
57
57
private
58
58
59
- def paginate_with_kaminari ( collection , options )
59
+ def paginate_with_kaminari ( collection , options , paginate_array_options = { } )
60
60
if Kaminari . config . max_per_page && options [ :per_page ] > Kaminari . config . max_per_page
61
61
options [ :per_page ] = Kaminari . config . max_per_page
62
62
elsif options [ :per_page ] <= 0
63
63
options [ :per_page ] = Kaminari . config . default_per_page
64
64
end
65
65
66
- collection = Kaminari . paginate_array ( collection ) if collection . is_a? ( Array )
66
+ collection = Kaminari . paginate_array ( collection , paginate_array_options ) if collection . is_a? ( Array )
67
67
collection . page ( options [ :page ] ) . per ( options [ :per_page ] )
68
68
end
69
69
Original file line number Diff line number Diff line change
1
+ require 'spec_helper'
2
+
3
+ describe ApiPagination do
4
+ let ( :collection ) { ( 1 ..100 ) . to_a }
5
+ let ( :paginate_array_options ) { { total_count : 1000 } }
6
+
7
+ context 'Using kaminari' do
8
+ before do
9
+ ApiPagination . config . paginator = :kaminari
10
+ end
11
+
12
+ after do
13
+ ApiPagination . config . paginator = ENV [ 'PAGINATOR' ] . to_sym
14
+ end
15
+
16
+ it 'should accept paginate_array_options option' do
17
+ expect ( Kaminari ) . to receive ( :paginate_array )
18
+ . with ( collection , paginate_array_options )
19
+ . and_call_original
20
+
21
+ ApiPagination . paginate (
22
+ collection ,
23
+ {
24
+ per_page : 30 ,
25
+ paginate_array_options : paginate_array_options
26
+ }
27
+ )
28
+ end
29
+ end
30
+ end
You can’t perform that action at this time.
0 commit comments