Class: Paginator::Page
- Extended by:
- Forwardable
- Defined in:
- lib/active_scaffold/paginator.rb
Overview
Page object
Retrieves items for a page and provides metadata about the position of the page in the paginator
Instance Attribute Summary collapse
-
#number ⇒ Object
readonly
Returns the value of attribute number.
-
#pager ⇒ Object
readonly
Returns the value of attribute pager.
Instance Method Summary collapse
-
#==(other) ⇒ Object
:nodoc:.
-
#first_item_number ⇒ Object
The “item number” of the first item on this page.
-
#initialize(pager, number, &select) ⇒ Page
constructor
:nodoc:.
-
#items ⇒ Object
Retrieve the items for this page * Caches.
-
#last_item_number ⇒ Object
The “item number” of the last item on this page.
-
#next ⇒ Object
Get next page (if possible).
-
#next? ⇒ Boolean
Checks to see if there’s a page after this one.
-
#prev ⇒ Object
Get previous page (if possible).
-
#prev? ⇒ Boolean
Checks to see if there’s a page before this one.
Constructor Details
#initialize(pager, number, &select) ⇒ Page
:nodoc:
82 83 84 85 86 87 |
# File 'lib/active_scaffold/paginator.rb', line 82 def initialize(pager, number, &select) # :nodoc: @pager = pager @number = number @offset = (number - 1) * pager.per_page @select = select end |
Instance Attribute Details
#number ⇒ Object (readonly)
Returns the value of attribute number.
80 81 82 |
# File 'lib/active_scaffold/paginator.rb', line 80 def number @number end |
#pager ⇒ Object (readonly)
Returns the value of attribute pager.
80 81 82 |
# File 'lib/active_scaffold/paginator.rb', line 80 def pager @pager end |
Instance Method Details
#==(other) ⇒ Object
:nodoc:
129 130 131 |
# File 'lib/active_scaffold/paginator.rb', line 129 def ==(other) # :nodoc: @pager == other.pager && number == other.number end |
#first_item_number ⇒ Object
The “item number” of the first item on this page
116 117 118 |
# File 'lib/active_scaffold/paginator.rb', line 116 def first_item_number 1 + @offset end |
#items ⇒ Object
Retrieve the items for this page
-
Caches
91 92 93 |
# File 'lib/active_scaffold/paginator.rb', line 91 def items @items ||= @select.call end |
#last_item_number ⇒ Object
The “item number” of the last item on this page
121 122 123 124 125 126 127 |
# File 'lib/active_scaffold/paginator.rb', line 121 def last_item_number if next? @offset + @pager.per_page else @pager.count end end |
#next ⇒ Object
Get next page (if possible)
111 112 113 |
# File 'lib/active_scaffold/paginator.rb', line 111 def next @pager.page(@number + 1) if next? end |
#next? ⇒ Boolean
Checks to see if there’s a page after this one
106 107 108 |
# File 'lib/active_scaffold/paginator.rb', line 106 def next? @number < @pager.number_of_pages end |
#prev ⇒ Object
Get previous page (if possible)
101 102 103 |
# File 'lib/active_scaffold/paginator.rb', line 101 def prev @pager.page(@number - 1) if prev? end |
#prev? ⇒ Boolean
Checks to see if there’s a page before this one
96 97 98 |
# File 'lib/active_scaffold/paginator.rb', line 96 def prev? @number > 1 end |