class ParamsReady::Pagination::KeysetPaginationDefinition

Constants

MIN_LIMIT

Attributes

default_limit[R]

Public Class Methods

new(default_limit, max_limit = nil) click to toggle source
Calls superclass method
# File lib/params_ready/pagination/keyset_pagination.rb, line 187
def initialize(default_limit, max_limit = nil)
  super :pagination,
        altn: :pgn

  @default_limit = default_limit

  direction = Builder.define_symbol(:direction, altn: :dir) do
    constrain :enum, [:bfr, :aft]
  end

  limit = Builder.define_integer(:limit, altn: :lmt) do
    constrain Value::OperatorConstraint.new(:>=, MIN_LIMIT), strategy: :clamp
    constrain Value::OperatorConstraint.new(:<=, max_limit), strategy: :clamp unless max_limit.nil?
  end
  add_child(direction)
  add_child(limit)
end

Public Instance Methods

finish() click to toggle source
Calls superclass method
# File lib/params_ready/pagination/keyset_pagination.rb, line 205
def finish
  keyset = names[:keyset]
  raise ParamsReadyError, "No cursor defined" if keyset.nil? || keyset.names.length < 1
  super
end