Module: RbPager::ActiveRecord::ClassMethods

Includes:
Base64Encoder
Defined in:
lib/rb_pager/orm/pager_active_record.rb

Constant Summary collapse

AR_ORDER =
{ '+' => :asc, '-' => :desc }

Instance Method Summary collapse

Methods included from Base64Encoder

#decode, #encode

Instance Method Details

#pager(after: nil, before: nil, limit: nil, sort: nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rb_pager/orm/pager_active_record.rb', line 10

def pager(after: nil, before: nil, limit: nil, sort: nil)
  instance_variable_set(:@sorted_columns, nil)
  instance_variable_set(:@collection, nil)
  instance_variable_set(:@records, nil)

  limit = nil if limit && limit < 2
  @page_limit = limit || RbPager.configuration.limit
  raise InvalidLimitValueError if @page_limit && @page_limit < 1
  @sort = sort

  @after = decode(after)
  @before = decode(before)
  @direction = :next

  create_paginate_meta
end