Sha256: fbb01023bb8ed602eef0f6816fa5500e206ee40fac195af5888d313b507f76ab

Contents?: true

Size: 876 Bytes

Versions: 3

Compression:

Stored size: 876 Bytes

Contents

# frozen_string_literal: true
module Kaminari
  module Mongoid
    module MongoidCriteriaMethods
      def initialize_copy(other) #:nodoc:
        @total_count = nil
        super
      end

      def entry_name(options = {})
        model_name.human(options.reverse_merge(default: model_name.human.pluralize(options[:count])))
      end

      def limit_value #:nodoc:
        options[:limit]
      end

      def offset_value #:nodoc:
        options[:skip]
      end

      def total_count #:nodoc:
        @total_count ||= if embedded?
          unpage.size
        elsif options[:max_scan] && options[:max_scan] < size
          options[:max_scan]
        else
          size
        end
      end

      private
      def unpage
        clone.tap do |crit|
          crit.options.delete :limit
          crit.options.delete :skip
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kaminari-mongoid-1.0.1 lib/kaminari/mongoid/mongoid_criteria_methods.rb
kaminari-mongoid-1.0.0 lib/kaminari/mongoid/mongoid_criteria_methods.rb
kaminari-mongoid-1.0.0.rc1 lib/kaminari/mongoid/mongoid_criteria_methods.rb