module Grape::Formatter::Paginater::Core
Public Instance Methods
page_count(object_count, size)
click to toggle source
# File lib/paginater/core.rb, line 28 def page_count(object_count, size) page_count = if (object_count%size).zero? object_count/size else object_count/size + 1 end end
paginate(object, page, size)
click to toggle source
# File lib/paginater/core.rb, line 8 def paginate(object, page, size) if object.respond_to?(:to_a) object = object.to_a if page > object.count || page.zero? raise Constants::PaginaterError, "invalid page #{page}" end if size.nil? || size <= 0 raise Constants::PaginaterError, "invalid size #{size}" end size = object.count if size > object.count if page > page_count(object.count, size) raise Constants::PaginaterError, "page #{page} out" end object = object[((page - 1) * size)...(page * size)] else puts "Can't paginate #{object.class}" object end end
simple(object, page = 1, size = 1)
click to toggle source
# File lib/paginater/core.rb, line 46 def simple(object, page = 1, size = 1) object = object.to_a object = object[((page.to_i - 1) * size.to_i)...(page.to_i * size.to_i)] end
total_pages(object_count, size, max_pages = nil)
click to toggle source
# File lib/paginater/core.rb, line 36 def total_pages(object_count, size, max_pages = nil) return 1 if size.nil? total_pages_count = (object_count.to_f / size).ceil if max_pages && max_pages < total_pages_count max_pages else total_pages_count end end