Sha256: ed29dd64465e6c787b6145073132a1742bc37033ab02843c770ebb7b42cc9f18

Contents?: true

Size: 1.96 KB

Versions: 7

Compression:

Stored size: 1.96 KB

Contents

require 'database_cleaner/base'

module DatabaseCleaner

  class NoORMDetected < StandardError;   end
  class UnknownStrategySpecified < ArgumentError;   end

  class << self
    def [](orm,opts = {})
      raise NoORMDetected if orm.nil?
      @connections ||= []
      cleaner = DatabaseCleaner::Base.new(orm,opts)
      connections.push cleaner
      cleaner
    end

    def app_root=(desired_root)
      @app_root = desired_root
    end

    def app_root
      @app_root || Dir.pwd
    end

    def connections
      @connections ||= [::DatabaseCleaner::Base.new]
    end
    
    def logger=(log_source)
      @logger = log_source
    end

    def logger
      return @logger if @logger
      
      @logger = Logger.new(STDOUT)
      @logger.level = Logger::ERROR
      @logger
    end

    def strategy=(stratagem)
      self.connections.each { |connect| connect.strategy = stratagem }
      remove_duplicates
    end

    def orm=(orm)
      self.connections.each { |connect| connect.orm = orm }
      remove_duplicates
    end

    def start
      self.connections.each { |connection| connection.start }
    end

    def clean
      self.connections.each { |connection| connection.clean }
    end

    alias clean! clean

    def clean_with(*args)
      self.connections.each { |connection| connection.clean_with(*args) }
    end

    alias clean_with! clean_with

    def remove_duplicates
      temp = []
      self.connections.each do |connect|
        temp.push connect unless temp.include? connect
      end
      @connections = temp
    end

    def orm_module(symbol)
      case symbol
        when :active_record
          DatabaseCleaner::ActiveRecord
        when :data_mapper
          DatabaseCleaner::DataMapper
        when :mongo
          DatabaseCleaner::Mongo
        when :mongoid
          DatabaseCleaner::Mongoid
        when :mongo_mapper
          DatabaseCleaner::MongoMapper
        when :couch_potato
          DatabaseCleaner::CouchPotato
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
radiant-1.0.0 ruby-debug/ruby/1.8/gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb
database_cleaner-0.6.7 lib/database_cleaner/configuration.rb
database_cleaner-0.6.7.RC lib/database_cleaner/configuration.rb
database_cleaner-0.6.6 lib/database_cleaner/configuration.rb
database_cleaner-0.6.5 lib/database_cleaner/configuration.rb
database_cleaner-0.6.4 lib/database_cleaner/configuration.rb
database_cleaner-0.6.3 lib/database_cleaner/configuration.rb