class SmartPaginate::PaginatingArray

Attributes

current_page[RW]
per_page[RW]
total_entries[RW]

Public Instance Methods

next_page() click to toggle source
# File lib/smart_paginate/paginating_array.rb, line 31
def next_page
  current_page + 1 if next_page?
end
next_page?() click to toggle source
# File lib/smart_paginate/paginating_array.rb, line 23
def next_page?
  (current_page * per_page) < total_entries
end
paginate(options = {}) click to toggle source
# File lib/smart_paginate/paginating_array.rb, line 7
def paginate(options = {})
  page = SmartPaginate::Paginate.new(options.fetch(:page), options[:per_page])

  if page.offset <= length
    array = self.slice(page.offset, page.per_page)
  else
    # out of bounds, just create an empty array
    array = PaginatingArray.new
  end

  array.current_page = page.current_page
  array.per_page = page.per_page
  array.total_entries = length
  array
end
previous_page() click to toggle source
# File lib/smart_paginate/paginating_array.rb, line 35
def previous_page
  current_page - 1 if previous_page?
end
previous_page?() click to toggle source
# File lib/smart_paginate/paginating_array.rb, line 27
def previous_page?
  current_page > 1
end
total_pages() click to toggle source
# File lib/smart_paginate/paginating_array.rb, line 39
def total_pages
  total_entries > 0 ? (total_entries / per_page.to_f).ceil : 1
end