module BazaModels::Query::Pagination
Public Instance Methods
current_page()
click to toggle source
# File lib/baza_models/query/pagination.rb, line 2 def current_page raise "Page has not been set" unless @page @page end
out_of_bounds?()
click to toggle source
# File lib/baza_models/query/pagination.rb, line 8 def out_of_bounds? current_page > total_pages end
page(some_page = :non_given)
click to toggle source
# File lib/baza_models/query/pagination.rb, line 12 def page(some_page = :non_given) if some_page == :non_given @page ||= 1 else some_page ||= 1 some_page = some_page.to_i offset = (some_page - 1) * per clone(page: some_page, offset: offset, limit: per) end end
paginated?()
click to toggle source
# File lib/baza_models/query/pagination.rb, line 24 def paginated? @page != nil end
per(value = :non_given)
click to toggle source
# File lib/baza_models/query/pagination.rb, line 28 def per(value = :non_given) if value == :non_given @per ||= 30 else value = value.to_i offset = (page - 1) * value clone(limit: value, offset: offset, per: value) end end
Also aliased as: per_page
total_entries()
click to toggle source
# File lib/baza_models/query/pagination.rb, line 40 def total_entries @model.count end
total_pages()
click to toggle source
# File lib/baza_models/query/pagination.rb, line 44 def total_pages pages_count = (count.to_f / per) pages_count = 1 if pages_count.nan? || pages_count == Float::INFINITY pages_count = pages_count.ceil pages_count = 1 if pages_count.zero? pages_count end