36 lines
584 B
Ruby
36 lines
584 B
Ruby
module PostSets
|
|
module Numbered
|
|
attr_reader :page
|
|
|
|
def initialize(params)
|
|
super
|
|
@page = options[:page] ? options[:page].to_i : 1
|
|
end
|
|
|
|
def total_pages
|
|
@total_pages ||= (count / limit.to_f).ceil.to_i
|
|
end
|
|
|
|
def reload
|
|
super
|
|
@total_pages = nil
|
|
end
|
|
|
|
def slice(relation)
|
|
relation.offset(offset).all
|
|
end
|
|
|
|
def pagination_options
|
|
{:offset => offset}
|
|
end
|
|
|
|
def is_first_page?
|
|
offset == 0
|
|
end
|
|
|
|
def offset
|
|
((page < 1) ? 0 : (page - 1)) * limit
|
|
end
|
|
end
|
|
end
|