class GearedPagination::Cursor

Attributes

values[R]

Public Class Methods

decode(key) click to toggle source
# File lib/geared_pagination/cursor.rb, line 11
def decode(key)
  if attributes = ActiveSupport::JSON.decode(Base64.urlsafe_decode64(key))
    new **attributes.deep_symbolize_keys
  end
end
encode(page_number: 1, values: {}) click to toggle source
# File lib/geared_pagination/cursor.rb, line 17
def encode(page_number: 1, values: {})
  Base64.urlsafe_encode64 ActiveSupport::JSON.encode(page_number: page_number, values: values)
end
from_param(key) click to toggle source
# File lib/geared_pagination/cursor.rb, line 7
def from_param(key)
  key.present? ? decode(key) : new
end
new(page_number: 1, values: {}) click to toggle source
# File lib/geared_pagination/cursor.rb, line 24
def initialize(page_number: 1, values: {})
  @page_number, @values = page_number, values
end

Public Instance Methods

fetch(attribute) click to toggle source
# File lib/geared_pagination/cursor.rb, line 32
def fetch(attribute)
  values.fetch(attribute)
end
include?(attribute) click to toggle source
# File lib/geared_pagination/cursor.rb, line 36
def include?(attribute)
  values.include?(attribute)
end
page_number() click to toggle source
# File lib/geared_pagination/cursor.rb, line 28
def page_number
  @page_number > 0 ? @page_number : 1
end