class CursorPaginator::PaginationResult
Attributes
paginator[R]
records_scope[R]
Public Class Methods
new(records_scope, paginator)
click to toggle source
# File lib/cursor_paginator/pagination_result.rb, line 9 def initialize(records_scope, paginator) @records_scope = records_scope @paginator = paginator end
Public Instance Methods
last_page?()
click to toggle source
# File lib/cursor_paginator/pagination_result.rb, line 22 def last_page? additional_record.blank? end
next_cursor_params()
click to toggle source
# File lib/cursor_paginator/pagination_result.rb, line 18 def next_cursor_params { after: next_cursor } end
prev_cursor_params()
click to toggle source
# File lib/cursor_paginator/pagination_result.rb, line 14 def prev_cursor_params { before: prev_cursor } end
Private Instance Methods
additional_record()
click to toggle source
# File lib/cursor_paginator/pagination_result.rb, line 50 def additional_record load_records if @records.nil? @additional_record end
fetch_cursor(record)
click to toggle source
# File lib/cursor_paginator/pagination_result.rb, line 42 def fetch_cursor(record) record.public_send(paginator.paginator_options.fetch(:primary_key)) end
load_records()
click to toggle source
# File lib/cursor_paginator/pagination_result.rb, line 56 def load_records records = records_scope.take(paginator.page_size + 1) @additional_record = records.pop if records.size > paginator.page_size paginator.cursor_direction.after? ? records : records.reverse end
next_cursor()
click to toggle source
# File lib/cursor_paginator/pagination_result.rb, line 35 def next_cursor return if paginator.cursor_direction.after? && last_page? return if records.empty? fetch_cursor(records.last) end
prev_cursor()
click to toggle source
# File lib/cursor_paginator/pagination_result.rb, line 28 def prev_cursor return if paginator.cursor_direction.before? && last_page? return if records.empty? fetch_cursor(records.first) end
records()
click to toggle source
# File lib/cursor_paginator/pagination_result.rb, line 46 def records @records ||= load_records end