@@ -5,23 +5,29 @@ class << self
55 attr_reader :paginator
66
77 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
911
1012 case ApiPagination . paginator
1113 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
1419 collection = Kaminari . paginate_array ( collection ) if collection . is_a? ( Array )
1520 collection . page ( options [ :page ] ) . per ( options [ :per_page ] )
1621 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+
1824 if defined? ( Sequel ::Dataset ) && collection . kind_of? ( Sequel ::Dataset )
1925 collection . paginate ( options [ :page ] , options [ :per_page ] )
2026 else
2127 collection . paginate ( :page => options [ :page ] , :per_page => options [ :per_page ] )
2228 end
2329 else
24- fail StandardError , "Unknown paginator: #{ ApiPagination . paginator } "
30+ raise StandardError , "Unknown paginator: #{ ApiPagination . paginator } "
2531 end
2632 end
2733
0 commit comments