Class: Gitlab::Pagination::Keyset::CursorPager

Inherits:
Base
  • Object
show all
Defined in:
lib/gitlab/pagination/keyset/cursor_pager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cursor_based_request_context) ⇒ CursorPager

Returns a new instance of CursorPager.



9
10
11
# File 'lib/gitlab/pagination/keyset/cursor_pager.rb', line 9

def initialize(cursor_based_request_context)
  @cursor_based_request_context = cursor_based_request_context
end

Instance Attribute Details

#cursor_based_request_contextObject (readonly)

Returns the value of attribute cursor_based_request_context.



7
8
9
# File 'lib/gitlab/pagination/keyset/cursor_pager.rb', line 7

def cursor_based_request_context
  @cursor_based_request_context
end

#paginatorObject (readonly)

Returns the value of attribute paginator.



7
8
9
# File 'lib/gitlab/pagination/keyset/cursor_pager.rb', line 7

def paginator
  @paginator
end

Instance Method Details

#finalize(_records = []) ⇒ Object



22
23
24
25
# File 'lib/gitlab/pagination/keyset/cursor_pager.rb', line 22

def finalize(_records = [])
  # can be called only after executing `paginate(relation)`
  apply_headers
end

#paginate(relation, _params = {}) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/gitlab/pagination/keyset/cursor_pager.rb', line 13

def paginate(relation, _params = {})
  @paginator ||= relation.keyset_paginate(
    per_page: cursor_based_request_context.per_page,
    cursor: cursor_based_request_context.cursor
  )

  paginator.records
end