Sha256: c1462355cb58eb9b54c61a87dd76aa592543fd48bedec4f4dd496348e4ede6d4

Contents?: true

Size: 1.11 KB

Versions: 4

Compression:

Stored size: 1.11 KB

Contents

module DatabaseCleaner
  module Generic
    module Truncation
      def initialize(opts={})
        if !opts.empty? && !(opts.keys - [:only, :except]).empty?
          raise ArgumentError, "The only valid options are :only and :except. You specified #{opts.keys.join(',')}."
        end
        if opts.has_key?(:only) && opts.has_key?(:except)
          raise ArgumentError, "You may only specify either :only or :except.  Doing both doesn't really make sense does it?"
        end

        @only = opts[:only]
        @tables_to_exclude = (opts[:except] || []).dup
        @tables_to_exclude << migration_storage_name if migration_storage_name
      end

      def start
        #included for compatability reasons, do nothing if you don't need to
      end

      def clean
        raise NotImplementedError
      end

      private
      def tables_to_truncate
        raise NotImplementedError
      end

      # overwrite in subclasses
      # default implementation given because migration storage need not be present
      def migration_storage_name
        nil
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
surgical_strike-0.7.7 lib/database_cleaner/generic/truncation.rb
surgical_strike-0.7.6 lib/database_cleaner/generic/truncation.rb
surgical_strike-0.7.5 lib/database_cleaner/generic/truncation.rb
surgical_strike-0.7.4 lib/database_cleaner/generic/truncation.rb