Sha256: bfd651abe81ef82fa35bce7101ec7413485596593d94c3b40e8312a05dc004e1

Contents?: true

Size: 890 Bytes

Versions: 8

Compression:

Stored size: 890 Bytes

Contents

require 'database_cleaner/mongo_mapper/base'
require 'database_cleaner/generic/truncation'

module DatabaseCleaner
  module MongoMapper
    class Truncation
      include ::DatabaseCleaner::MongoMapper::Base
      include ::DatabaseCleaner::Generic::Truncation

      def clean
        if @only
          collections.each { |c| c.send(truncate_method_name) if @only.include?(c.name) }
        else
          collections.each { |c| c.send(truncate_method_name) unless @tables_to_exclude.include?(c.name) }
        end
        true
      end

      private

      def collections
        database.collections.select { |c| c.name !~ /^system\./ }
      end

      def truncate_method_name
        # This constant only exists in the 2.x series.
        defined?(::Mongo::VERSION) ? :delete_many : :remove
      end

      def database
        ::MongoMapper.database
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
database_cleaner-1.99.0 adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/truncation.rb
database_cleaner-1.99.0.beta adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/truncation.rb
database_cleaner-mongo_mapper-1.99.0.beta lib/database_cleaner/mongo_mapper/truncation.rb
database_cleaner-1.8.5 adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/truncation.rb
database_cleaner-1.8.4 adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/truncation.rb
database_cleaner-1.8.3 adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/truncation.rb
database_cleaner-1.8.2 adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/truncation.rb
database_cleaner-mongo_mapper-1.8.1 lib/database_cleaner/mongo_mapper/truncation.rb