class CursorPaginator::Paginator::Base

Constants

SORT_DIRECTIONS

Attributes

options_parser[R]
paginator_options[R]

Public Class Methods

new(page_options: {}, paginator_options: {}) click to toggle source
# File lib/cursor_paginator/paginator/base.rb, line 9
def initialize(page_options: {}, paginator_options: {})
  @options_parser = OptionsParser.new(page_options)
  @paginator_options = paginator_options.reverse_merge(
    order_key: :id,
    primary_key: :id,
    sort_direction: :desc
  )
end

Private Instance Methods

opposite_sort_direction() click to toggle source
# File lib/cursor_paginator/paginator/base.rb, line 33
def opposite_sort_direction
  SORT_DIRECTIONS.find { |i| i != sort_direction }
end
order_direction() click to toggle source
# File lib/cursor_paginator/paginator/base.rb, line 25
def order_direction
  cursor_direction.after? ? sort_direction : opposite_sort_direction
end
query_operator() click to toggle source
# File lib/cursor_paginator/paginator/base.rb, line 20
def query_operator
  return cursor_direction.after? ? :gt : :lt if sort_direction == :asc
  return cursor_direction.after? ? :lt : :gt if sort_direction == :desc
end
sort_direction() click to toggle source
# File lib/cursor_paginator/paginator/base.rb, line 29
def sort_direction
  paginator_options.fetch(:sort_direction)
end