module SimplePaginator::ClassMethods

Public Instance Methods

max_page(max_page) click to toggle source
# File lib/simple_paginator.rb, line 41
def max_page(max_page)
  @max_page = max_page
end
page_number(raw_page) click to toggle source
# File lib/simple_paginator.rb, line 33
def page_number(raw_page)
  [raw_page.to_i, 1].max
end
paged(page, options = {}) click to toggle source
# File lib/simple_paginator.rb, line 18
def paged(page, options = {})
  num = page_number(page)
  per_page = options[:per_page].presence || @per_page
  max_page = options[:max_page].presence || @max_page

  if num > max_page
    scoped = none
  elsif num == max_page
    scoped = limit(per_page).offset((num-1)*per_page)
  else
    scoped = limit(per_page+1).offset((num-1)*per_page)
  end
  scoped
end
per_page(per_page) click to toggle source
# File lib/simple_paginator.rb, line 37
def per_page(per_page)
  @per_page = per_page
end