module Data::Pagination

Public Instance Methods

apply_pagination(offset: 0, pagesize: nil) click to toggle source
# File lib/tabulatr/data/pagination.rb, line 26
def apply_pagination(offset: 0, pagesize: nil)
  @relation = @relation.limit(pagesize).offset(offset)
end
compute_pagination(page, pagesize) click to toggle source
# File lib/tabulatr/data/pagination.rb, line 30
def compute_pagination(page, pagesize)
  count = @relation.count
  count = count.count if count.is_a?(Hash)
  page ||= 1
  pagesize, page = pagesize.to_i, page.to_i
  pagesize = Tabulatr::pagesize if pagesize == 0

  pages = (count/pagesize.to_f).ceil
  {
    offset: [0,((page-1)*pagesize).to_i].max,
    pagesize: pagesize,
    pages: pages,
    page: page,
    count: count
  }
end