2011-02-20 13:04:18 +09:00
|
|
|
module Kaminari
|
|
|
|
module MongoidCriteriaMethods
|
2011-12-12 00:14:52 +09:00
|
|
|
def limit_value #:nodoc:
|
|
|
|
options[:limit]
|
|
|
|
end
|
2011-02-21 04:01:07 +09:00
|
|
|
|
2011-12-12 00:14:52 +09:00
|
|
|
def offset_value #:nodoc:
|
|
|
|
options[:skip]
|
|
|
|
end
|
2011-02-21 04:01:07 +09:00
|
|
|
|
2011-12-12 00:14:52 +09:00
|
|
|
def total_count #:nodoc:
|
2013-12-12 10:53:14 +08:00
|
|
|
@total_count ||=
|
|
|
|
if embedded?
|
|
|
|
unpage.count
|
|
|
|
else
|
|
|
|
counter_result = count
|
|
|
|
if options[:max_scan] and options[:max_scan] < counter_result
|
|
|
|
options[:max_scan]
|
|
|
|
else
|
|
|
|
counter_result
|
|
|
|
end
|
|
|
|
end
|
2011-12-12 00:14:52 +09:00
|
|
|
end
|
2012-05-14 23:45:33 +08:00
|
|
|
|
2011-12-12 00:14:52 +09:00
|
|
|
private
|
|
|
|
def unpage
|
|
|
|
clone.tap do |crit|
|
|
|
|
crit.options.delete :limit
|
|
|
|
crit.options.delete :skip
|
2011-02-20 13:04:18 +09:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|