class Ramaze::Helper::Paginate::Paginator::ArrayPager

Wrapper for Array to behave like the Sequel pagination

Public Class Methods

new(array, page, limit) click to toggle source
# File lib/ramaze/helper/paginate.rb, line 236
def initialize(array, page, limit)
  @array, @page, @limit = array, page, limit
  @page = page_count if @page > page_count
end

Public Instance Methods

current_page() click to toggle source
# File lib/ramaze/helper/paginate.rb, line 254
def current_page
  @page
end
each(&block) click to toggle source
# File lib/ramaze/helper/paginate.rb, line 274
def each(&block)
  from = ((@page - 1) * @limit)
  to = from + @limit

  a = @array[from...to] || []
  a.each(&block)
end
empty?() click to toggle source
# File lib/ramaze/helper/paginate.rb, line 245
def empty?
  @array.empty?
end
first_page?() click to toggle source
# File lib/ramaze/helper/paginate.rb, line 266
def first_page?
  @page <= 1
end
last_page?() click to toggle source
# File lib/ramaze/helper/paginate.rb, line 270
def last_page?
  page_count == @page
end
next_page() click to toggle source
# File lib/ramaze/helper/paginate.rb, line 258
def next_page
  page_count == @page ? nil : @page + 1
end
page_count() click to toggle source
# File lib/ramaze/helper/paginate.rb, line 249
def page_count
  pages, rest = size.divmod(@limit)
  rest == 0 ? pages : pages + 1
end
prev_page() click to toggle source
# File lib/ramaze/helper/paginate.rb, line 262
def prev_page
  @page <= 1 ? nil : @page - 1
end
size() click to toggle source
# File lib/ramaze/helper/paginate.rb, line 241
def size
  @array.size
end