class ArPagination::CursorPagination::Page

Attributes

count[R]
first[RW]
last[RW]

Public Class Methods

new(window, cursor, cursor_key, count: 20) click to toggle source

param [Array] window in current window param [Fixnum] cursor previous cursor option [Fixnum] count

# File lib/ar_pagination/cursor_pagination/page.rb, line 10
def initialize(window, cursor, cursor_key, count: 20)
  @window = window
  @cursor = cursor
  @cursor_key = cursor_key
  @count = count
end

Public Instance Methods

data() click to toggle source
# File lib/ar_pagination/cursor_pagination/page.rb, line 17
def data
  @window[1..-2]
end
next() click to toggle source
# File lib/ar_pagination/cursor_pagination/page.rb, line 21
def next
  @window.last.nil? ? nil : @window.last.try(@cursor_key)
end
params_for(dir) click to toggle source
# File lib/ar_pagination/cursor_pagination/page.rb, line 29
def params_for(dir)
  case dir
  when :first
    { cursor: cursor, count: @count }
  when :next
    { cursor: self.next, count: @count }
  when :prev
    { cursor: self.prev, count: @count }
  end
end
prev() click to toggle source
# File lib/ar_pagination/cursor_pagination/page.rb, line 25
def prev
  @window.first.nil? ? nil : @window.first.try(@cursor_key)
end