class DatabaseCleaner::Base

Public Class Methods

new(desired_orm = nil,opts = {}) click to toggle source
# File lib/database_cleaner/base.rb, line 5
def initialize(desired_orm = nil,opts = {})
  if [:autodetect, nil, "autodetect"].include?(desired_orm)
    autodetect
  else
    self.orm = desired_orm
  end
  self.db = opts[:connection] if opts.has_key? :connection
  set_default_orm_strategy
end

Public Instance Methods

==(other) click to toggle source

TODO make strategies directly comparable

# File lib/database_cleaner/base.rb, line 87
def ==(other)
  self.orm == other.orm && self.db == other.db && self.strategy.class == other.strategy.class
end
auto_detected?() click to toggle source
# File lib/database_cleaner/base.rb, line 82
def auto_detected?
  return true unless @autodetected.nil?
end
clean() click to toggle source
# File lib/database_cleaner/base.rb, line 76
def clean
  strategy.clean
end
Also aliased as: clean!
clean!() click to toggle source
Alias for: clean
clean_with(*args) click to toggle source
# File lib/database_cleaner/base.rb, line 37
def clean_with(*args)
  strategy = create_strategy(*args)
  strategy.clean
  strategy
end
Also aliased as: clean_with!
clean_with!(*args) click to toggle source
Alias for: clean_with
create_strategy(*args) click to toggle source
# File lib/database_cleaner/base.rb, line 32
def create_strategy(*args)
  strategy, *strategy_args = args
  orm_strategy(strategy).new(*strategy_args)
end
db() click to toggle source
# File lib/database_cleaner/base.rb, line 28
def db
  @db || :default
end
db=(desired_db) click to toggle source
# File lib/database_cleaner/base.rb, line 15
def db=(desired_db)
   self.strategy_db = desired_db
   @db = desired_db
end
orm() click to toggle source
# File lib/database_cleaner/base.rb, line 68
def orm
  @orm || autodetect
end
orm=(desired_orm) click to toggle source
# File lib/database_cleaner/base.rb, line 64
def orm=(desired_orm)
  @orm = desired_orm.to_sym
end
start() click to toggle source
# File lib/database_cleaner/base.rb, line 72
def start
  strategy.start
end
strategy() click to toggle source
# File lib/database_cleaner/base.rb, line 60
def strategy
  @strategy || NullStrategy
end
strategy=(args) click to toggle source
# File lib/database_cleaner/base.rb, line 45
def strategy=(args)
  strategy, *strategy_args = args
   if strategy.is_a?(Symbol)
      @strategy = create_strategy(*args)
   elsif strategy_args.empty?
     @strategy = strategy
   else
     raise ArgumentError, "You must provide a strategy object, or a symbol for a known strategy along with initialization params."
   end

   self.strategy_db = self.db

   @strategy
end
strategy_db=(desired_db) click to toggle source
# File lib/database_cleaner/base.rb, line 20
def strategy_db=(desired_db)
  if strategy.respond_to? :db=
    strategy.db = desired_db
  elsif desired_db!= :default
    raise ArgumentError, "You must provide a strategy object that supports non default databases when you specify a database"
  end
end