class CursorPagination::Cursor

Attributes

cursor[R]

Public Class Methods

decode(cursor) click to toggle source
# File lib/cursor_pagination.rb, line 14
def self.decode(cursor)
  unless cursor.nil?
    new YAML.load(Base64.strict_decode64(cursor))
  else
    new nil
  end
end
from_entity(entity, columns) click to toggle source
# File lib/cursor_pagination.rb, line 30
def self.from_entity(entity, columns)
  new value_from_entity(entity, columns)
end
new(cursor) click to toggle source
# File lib/cursor_pagination.rb, line 10
def initialize(cursor)
  @cursor = cursor
end
value_from_entity(entity, columns) click to toggle source
# File lib/cursor_pagination.rb, line 22
def self.value_from_entity(entity, columns)
  value = []
  columns.each_key do |column|
    value << entity.send(column)
  end
  value.size == 1 ? value.first : value
end

Public Instance Methods

empty?() click to toggle source
# File lib/cursor_pagination.rb, line 38
def empty?
  cursor.nil? || invalid?
end
encoded() click to toggle source
# File lib/cursor_pagination.rb, line 34
def encoded
  Base64.strict_encode64 cursor.to_yaml
end
invalid?() click to toggle source
# File lib/cursor_pagination.rb, line 42
def invalid?
  cursor == -1
end
to_s() click to toggle source
# File lib/cursor_pagination.rb, line 50
def to_s
  cursor.nil? ? nil : encoded
end
value() click to toggle source
# File lib/cursor_pagination.rb, line 46
def value
  @cursor
end