class ParamsReady::Pagination::KeysetPaginationBuilder
Public Class Methods
new(ordering_builder, default_limit, max_limit = nil)
click to toggle source
# File lib/params_ready/pagination/keyset_pagination.rb, line 213 def initialize(ordering_builder, default_limit, max_limit = nil) definition = KeysetPaginationDefinition.new(default_limit, max_limit) @cursor_builder = Parameter::HashParameterBuilder.send :new, definition @default = { limit: default_limit, direction: :aft, keyset: {} } @ordering_builder = ordering_builder @keyset = Parameter::HashParameterBuilder.instance(:keyset, altn: :ks) end
Public Instance Methods
add_to_cursor(type, name, &block)
click to toggle source
# File lib/params_ready/pagination/keyset_pagination.rb, line 239 def add_to_cursor(type, name, &block) @keyset.add type, name do optional include(&block) unless block.nil? end end
base64()
click to toggle source
# File lib/params_ready/pagination/keyset_pagination.rb, line 235 def base64 @cursor_builder.marshal using: :base64 end
build(&block)
click to toggle source
# File lib/params_ready/pagination/keyset_pagination.rb, line 246 def build(&block) instance_eval(&block) @cursor_builder.add @keyset.build @cursor_builder.default @default @cursor_builder.build end
column(type, name, direction, **opts, &block)
click to toggle source
# File lib/params_ready/pagination/keyset_pagination.rb, line 230 def column(type, name, direction, **opts, &block) add_to_cursor(type, name, &block) @ordering_builder.column name, direction, **opts end
key(type, name, direction, &block)
click to toggle source
# File lib/params_ready/pagination/keyset_pagination.rb, line 225 def key(type, name, direction, &block) add_to_cursor(type, name, &block) @ordering_builder.column name, direction, required: true, pk: true end