module ActiveHouse::Querying::Page

Public Instance Methods

initial_values() click to toggle source
Calls superclass method
# File lib/active_house/querying/page.rb, line 6
def initial_values
  super.merge page_number: nil
end
page(page_number) click to toggle source
# File lib/active_house/querying/page.rb, line 10
def page(page_number)
  dup.page!(page_number)
end
page!(page_number) click to toggle source
# File lib/active_house/querying/page.rb, line 14
def page!(page_number)
  page_number ||= 1
  raise ArgumentError, 'page_number must be >= 1' if page_number < 1

  values[:page_number] = page_number
  self
end
per(page_size) click to toggle source
# File lib/active_house/querying/page.rb, line 22
def per(page_size)
  page_number = values[:page_number] || 1
  raise ArgumentError, 'page_number must be >= 1' if page_number < 1
  raise ArgumentError, 'page_size must be >= 0' if page_size < 0

  offset = (page_number - 1) * page_size
  records = limit(page_size, offset).to_a
  total_count = count
  Kaminari.paginate_array(records, total_count: total_count).page(page_number).per(page_size)
end