Class: Pagy::Offset

Inherits:
Pagy
  • Object
show all
Includes:
Deprecated::Offset, NumericHelpers, Rangeable, Shiftable
Defined in:
lib/pagy/classes/offset/offset.rb,
lib/pagy/classes/offset/countish.rb,
lib/pagy/classes/offset/countless.rb

Overview

Implements Offset Pagination

Direct Known Subclasses

SearchBase

Defined Under Namespace

Classes: Countish, Countless

Constant Summary collapse

DEFAULT =
{ page: 1 }.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from NumericHelpers

#info_tag, #input_nav_js, #limit_tag_js, #previous_tag, #series_nav, #series_nav_js

Methods included from Rangeable

#in_range?

Constructor Details

#initializeOffset

Returns a new instance of Offset.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/pagy/classes/offset/offset.rb', line 18

def initialize(**)
  assign_options(**)
  assign_and_check(limit: 1, count: 0, page: 1)
  assign_last
  assign_offset

  unless in_range? { @page <= @last }
    assign_empty_page_variables
    return
  end

  @from = [@offset + 1, @count].min
  @to   = [@offset + @limit, @count].min
  @in   = [@to - @from + 1, @count].min

  assign_previous_and_next
end

Instance Attribute Details

#countObject (readonly)

Returns the value of attribute count.



36
37
38
# File 'lib/pagy/classes/offset/offset.rb', line 36

def count
  @count
end

#fromObject (readonly)

Returns the value of attribute from.



36
37
38
# File 'lib/pagy/classes/offset/offset.rb', line 36

def from
  @from
end

#inObject (readonly)

Returns the value of attribute in.



36
37
38
# File 'lib/pagy/classes/offset/offset.rb', line 36

def in
  @in
end

#lastObject (readonly) Also known as: pages

Returns the value of attribute last.



36
37
38
# File 'lib/pagy/classes/offset/offset.rb', line 36

def last
  @last
end

#nextObject (readonly)

Returns the value of attribute next.



36
37
38
# File 'lib/pagy/classes/offset/offset.rb', line 36

def next
  @next
end

#offsetObject (readonly)

Returns the value of attribute offset.



36
37
38
# File 'lib/pagy/classes/offset/offset.rb', line 36

def offset
  @offset
end

#previousObject (readonly)

Returns the value of attribute previous.



36
37
38
# File 'lib/pagy/classes/offset/offset.rb', line 36

def previous
  @previous
end

#toObject (readonly)

Returns the value of attribute to.



36
37
38
# File 'lib/pagy/classes/offset/offset.rb', line 36

def to
  @to
end

Instance Method Details

#records(collection) ⇒ Object



39
40
41
# File 'lib/pagy/classes/offset/offset.rb', line 39

def records(collection)
  collection.offset(@offset).limit(@limit)
end