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