Initial commit
This commit is contained in:
20
classes/pagination.rb
Normal file
20
classes/pagination.rb
Normal file
@@ -0,0 +1,20 @@
|
||||
class Paginator
|
||||
attr_reader :page, :per_page
|
||||
|
||||
def initialize(params, per_page, custom_name = 'p')
|
||||
@current_page = params[custom_name].nil? || params[custom_name].to_i < 1 ? 1 : params[custom_name].to_i
|
||||
@per_page = per_page
|
||||
end
|
||||
|
||||
def get_page(items)
|
||||
start_index = (@current_page - 1) * @per_page
|
||||
items[start_index, @per_page]
|
||||
end
|
||||
|
||||
def pages_info(items)
|
||||
total_pages = (items.length / @per_page.to_f).ceil
|
||||
(1..total_pages).map do |page_number|
|
||||
{ page: page_number, is_current: page_number == @current_page }
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user