Sha256: 114a19c78212af9c6390d080a66897007ab438141d37c0a2aec37c71f0e6a385
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
require 'mongoid' require 'will_paginate/collection' module WillPaginate module Mongoid module CriteriaMethods def paginate(options = {}) extend CollectionMethods @current_page = WillPaginate::PageNumber(options[:page] || @current_page || 1) @page_multiplier = current_page - 1 pp = (options[:per_page] || per_page || WillPaginate.per_page).to_i limit(pp).skip(@page_multiplier * pp) end 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 def page(page) paginate(:page => page) end end module CollectionMethods attr_reader :current_page def total_entries @total_entries ||= count end def total_pages (total_entries / per_page.to_f).ceil end def offset @page_multiplier * per_page end end ::Mongoid::Criteria.send(:include, CriteriaMethods) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rasti-paginate-0.0.1 | lib/rasti/paginate/mongoid.rb |