module WillPaginate::Mongoid::CriteriaMethods
def page(page)
def page(page) paginate(:page => page) end
def paginate(options = {})
def paginate(options = {}) extend CollectionMethods @current_page = WillPaginate::PageNumber(options[:page] || @current_page || 1) @page_multiplier = current_page - 1 @total_entries = options.delete(:total_entries) pp = (options[:per_page] || per_page || WillPaginate.per_page).to_i limit(pp).skip(@page_multiplier * pp) end
def per_page(value = :non_given)
def per_page(value = :non_given) if value == :non_given options[:limit] == 0 ? nil : options[:limit] # in new Mongoid versions a nil limit is saved as 0 else limit(value) end end