module Sequel::Dataset::Pagination

Holds methods that only relate to paginated datasets. Paginated dataset have pages starting at 1 (page 1 is offset 0, page 1 is offset #page_size).

Public Instance Methods

current_page() click to toggle source

The current page of the dataset, starting at 1 and not 0.

# File lib/sequel/extensions/pagination.rb, line 85
def current_page
  @opts[:current_page]
end
current_page_record_count() click to toggle source

Returns the number of records in the current page

# File lib/sequel/extensions/pagination.rb, line 105
def current_page_record_count
  return 0 if current_page > page_count
  
  a = 1 + (current_page - 1) * page_size
  b = a + page_size - 1
  b = pagination_record_count if b > pagination_record_count
  b - a + 1
end
current_page_record_range() click to toggle source

Returns the record range for the current page

# File lib/sequel/extensions/pagination.rb, line 95
def current_page_record_range
  return (0..0) if current_page > page_count
  
  a = 1 + (current_page - 1) * page_size
  b = a + page_size - 1
  b = pagination_record_count if b > pagination_record_count
  a..b
end
first_page?() click to toggle source

Returns true if the current page is the first page

# File lib/sequel/extensions/pagination.rb, line 115
def first_page?
  current_page == 1
end
last_page?() click to toggle source

Returns true if the current page is the last page

# File lib/sequel/extensions/pagination.rb, line 120
def last_page?
  current_page == page_count
end
next_page() click to toggle source

Returns the next page number or nil if the current page is the last page

# File lib/sequel/extensions/pagination.rb, line 125
def next_page
  current_page < page_count ? (current_page + 1) : nil
end
page_count() click to toggle source

The number of pages in the dataset before pagination, of which this paginated dataset is one. Empty datasets are considered to have a single page.

# File lib/sequel/extensions/pagination.rb, line 80
def page_count
  @opts[:page_count]
end
page_range() click to toggle source

Returns the page range

# File lib/sequel/extensions/pagination.rb, line 130
def page_range
  1..page_count
end
page_size() click to toggle source

The number of records per page (the final page may have fewer than this number of records).

# File lib/sequel/extensions/pagination.rb, line 73
def page_size
  @opts[:page_size]
end
pagination_record_count() click to toggle source

The total number of records in the dataset before pagination.

# File lib/sequel/extensions/pagination.rb, line 90
def pagination_record_count
  @opts[:pagination_record_count]
end
prev_page() click to toggle source

Returns the previous page number or nil if the current page is the first

# File lib/sequel/extensions/pagination.rb, line 135
def prev_page
  current_page > 1 ? (current_page - 1) : nil
end
set_pagination_info(page_no, page_size, record_count) click to toggle source

SEQUEL5: Remove :nocov:

# File lib/sequel/extensions/pagination.rb, line 141
def set_pagination_info(page_no, page_size, record_count)
  Sequel::Deprecation.deprecate("Dataset#set_pagination_info", "It should no longer be necessary to call this method.")
  self.current_page = page_no
  self.page_size = page_size
  self.pagination_record_count = record_count
  page_count = (record_count / page_size.to_f).ceil
  page_count = 1 if page_count == 0
  self.page_count = page_count
  self
end