class Locker::List
A paginated list of items (e.g. labels or resources).
@api private
Attributes
item_class[R]
@return [#list] The Ruby class of the item to be listed.
list[R]
@return [Enumerable] The full list of items.
offset[R]
@return [Integer] The zero-based index offset that the requested page starts on within the full list.
page[R]
@return [Integer] The page the user has requested.
pages[R]
@return [Integer] The total number of pages.
per_page[R]
@return [Integer] The number of items displayed per page.
Public Class Methods
new(item_class, per_page, page)
click to toggle source
# File lib/locker/list.rb, line 27 def initialize(item_class, per_page, page) @item_class = item_class @list = item_class.list @per_page = per_page @page = Integer(page.to_s, 10) @pages = (list.count / per_page).ceil + 1 @offset = per_page * (self.page - 1) end
Public Instance Methods
multiple_pages?()
click to toggle source
Whether or not the list has multiple pages.
@return [Boolean]
# File lib/locker/list.rb, line 39 def multiple_pages? list.count > per_page end
requested_page()
click to toggle source
An enumerable of the items in the requested page.
@return [Enumerable]
# File lib/locker/list.rb, line 46 def requested_page list[offset, per_page] end
valid_page?()
click to toggle source
Whether or not the requested page exists.
@return [Boolean]
# File lib/locker/list.rb, line 53 def valid_page? page >= 1 && page <= pages end