class Pagez
Attributes
page[R]
per_page[R]
Public Class Methods
new(paginatable, options = {})
click to toggle source
# File lib/pagez/pagez.rb, line 4 def initialize(paginatable, options = {}) @paginatable = paginatable @page = nil @per_page = options[:per_page] || 10 @items = [] end
Public Instance Methods
to_a()
click to toggle source
# File lib/pagez/pagez.rb, line 41 def to_a to_page(page) @items.to_a end
to_h()
click to toggle source
# File lib/pagez/pagez.rb, line 31 def to_h to_page(page) { page: page, per_page: per_page, items: to_a, total: total } end
to_page(page)
click to toggle source
# File lib/pagez/pagez.rb, line 11 def to_page(page) page = page.to_i page = 1 if page <= 0 if @page != page @page = page @items = if defined?(ActiveRecord::Base) && @paginatable.is_a?(ActiveRecord::Base) @paginatable .offset(@per_page * (page - 1)) .limit(@per_page) else @paginatable.slice((@per_page * (page - 1)), @per_page) end end self end
total()
click to toggle source
# File lib/pagez/pagez.rb, line 27 def total (@paginatable.count / per_page.to_f).ceil end