class PageCursor

Attributes

current_page[R]
page_number[R]
per_page[R]

Public Class Methods

as_hash(current_page, page_number, per_page) click to toggle source
# File lib/page_cursor.rb, line 6
def self.as_hash(current_page, page_number, per_page)
  new(current_page, page_number, per_page).to_hash
end
new(current_page, page_number, per_page) click to toggle source
# File lib/page_cursor.rb, line 12
def initialize(current_page, page_number, per_page)
  @current_page = current_page
  @page_number = page_number
  @per_page = per_page
end

Public Instance Methods

to_hash() click to toggle source
# File lib/page_cursor.rb, line 18
def to_hash
  {
    cursor: encoded_cursor,
    is_current: current?,
    page: page_number
  }
end

Private Instance Methods

current?() click to toggle source
# File lib/page_cursor.rb, line 28
def current?
  current_page == page_number
end
encoded_cursor() click to toggle source
# File lib/page_cursor.rb, line 32
def encoded_cursor
  previous_page = page_number - 1
  return '' if previous_page.zero?

  after_cursor = previous_page * per_page
  encoded = Base64.strict_encode64(after_cursor.to_s)
  encoded.tr('+/', '-_').delete('=')
end