@@ -5,23 +5,29 @@ class << self
5
5
attr_reader :paginator
6
6
7
7
def paginate ( collection , options = { } )
8
- options [ :page ] ||= 1
8
+ options [ :page ] = options [ :page ] . to_i
9
+ options [ :page ] = 1 if options [ :page ] <= 0
10
+ options [ :per_page ] = options [ :per_page ] . to_i
9
11
10
12
case ApiPagination . paginator
11
13
when :kaminari
12
- options [ :per_page ] = ( options [ :per_page ] . to_i <= 0 ? Kaminari . config . default_per_page : options [ :per_page ] )
13
- options [ :per_page ] = ( options [ :per_page ] . to_i > Kaminari . config . max_per_page ? Kaminari . config . max_per_page : options [ :per_page ] ) if Kaminari . config . max_per_page
14
+ if Kaminari . config . max_per_page && options [ :per_page ] > Kaminari . config . max_per_page
15
+ options [ :per_page ] = Kaminari . config . max_per_page
16
+ elsif options [ :per_page ] <= 0
17
+ options [ :per_page ] = Kaminari . config . default_per_page
18
+ end
14
19
collection = Kaminari . paginate_array ( collection ) if collection . is_a? ( Array )
15
20
collection . page ( options [ :page ] ) . per ( options [ :per_page ] )
16
21
when :will_paginate
17
- options [ :per_page ] = ( options [ :per_page ] . to_i <= 0 ? WillPaginate . per_page : options [ :per_page ] )
22
+ options [ :per_page ] = WillPaginate . per_page if options [ :per_page ] <= 0
23
+
18
24
if defined? ( Sequel ::Dataset ) && collection . kind_of? ( Sequel ::Dataset )
19
25
collection . paginate ( options [ :page ] , options [ :per_page ] )
20
26
else
21
27
collection . paginate ( :page => options [ :page ] , :per_page => options [ :per_page ] )
22
28
end
23
29
else
24
- fail StandardError , "Unknown paginator: #{ ApiPagination . paginator } "
30
+ raise StandardError , "Unknown paginator: #{ ApiPagination . paginator } "
25
31
end
26
32
end
27
33
0 commit comments