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