class CursorPaginator::OptionsParser

Attributes

options[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/cursor_paginator/options_parser.rb, line 9
def initialize(options = {})
  @options = options.deep_dup
  @options[:size] = normalize_page_size
end

Public Instance Methods

cursor() click to toggle source
# File lib/cursor_paginator/options_parser.rb, line 18
def cursor
  options[:before].presence || options[:after].presence
end
cursor_direction() click to toggle source
# File lib/cursor_paginator/options_parser.rb, line 22
def cursor_direction
  (after_direction? ? "after" : "before").inquiry
end
filter_required?() click to toggle source
# File lib/cursor_paginator/options_parser.rb, line 14
def filter_required?
  cursor.present?
end
page_size() click to toggle source
# File lib/cursor_paginator/options_parser.rb, line 26
def page_size
  @options[:size]
end

Private Instance Methods

after_direction?() click to toggle source
# File lib/cursor_paginator/options_parser.rb, line 32
def after_direction?
  options[:before].blank?
end
normalize_page_size() click to toggle source
# File lib/cursor_paginator/options_parser.rb, line 36
def normalize_page_size
  result = options.fetch(:size, DEFAULT_LIMIT).to_i
  [[result, MIN_ITEMS].max, MAX_ITEMS].min
end