move strategy= and orm= over to Cleaners.
This commit is contained in:
parent
47fb64a8a9
commit
054404fb37
|
@ -13,10 +13,30 @@ module DatabaseCleaner
|
||||||
fetch([orm, opts]) { add_cleaner(orm, opts) }
|
fetch([orm, opts]) { add_cleaner(orm, opts) }
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO privatize in 2.0
|
def strategy=(strategy)
|
||||||
|
add_cleaner(:autodetect) if none?
|
||||||
|
values.each { |cleaner| cleaner.strategy = strategy }
|
||||||
|
remove_duplicates
|
||||||
|
end
|
||||||
|
|
||||||
|
def orm=(orm)
|
||||||
|
add_cleaner(:autodetect) if none?
|
||||||
|
values.each { |cleaner| cleaner.orm = orm }
|
||||||
|
remove_duplicates
|
||||||
|
end
|
||||||
|
|
||||||
|
# TODO privatize the following methods in 2.0
|
||||||
|
|
||||||
def add_cleaner(orm, opts = {})
|
def add_cleaner(orm, opts = {})
|
||||||
self[[orm, opts]] = ::DatabaseCleaner::Base.new(orm, opts)
|
self[[orm, opts]] = ::DatabaseCleaner::Base.new(orm, opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def remove_duplicates
|
||||||
|
replace(reduce(Cleaners.new) do |cleaners, (key, value)|
|
||||||
|
cleaners[key] = value unless cleaners.values.include?(value)
|
||||||
|
cleaners
|
||||||
|
end)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class Configuration
|
class Configuration
|
||||||
|
@ -25,7 +45,14 @@ module DatabaseCleaner
|
||||||
end
|
end
|
||||||
|
|
||||||
extend Forwardable
|
extend Forwardable
|
||||||
delegate [:[], :add_cleaner] => :cleaners
|
delegate [
|
||||||
|
:[],
|
||||||
|
:strategy=,
|
||||||
|
:orm=,
|
||||||
|
|
||||||
|
:add_cleaner,
|
||||||
|
:remove_duplicates,
|
||||||
|
] => :cleaners
|
||||||
|
|
||||||
attr_accessor :app_root, :logger, :cleaners
|
attr_accessor :app_root, :logger, :cleaners
|
||||||
|
|
||||||
|
@ -37,16 +64,6 @@ module DatabaseCleaner
|
||||||
@logger ||= Logger.new(STDOUT).tap { |l| l.level = Logger::ERROR }
|
@logger ||= Logger.new(STDOUT).tap { |l| l.level = Logger::ERROR }
|
||||||
end
|
end
|
||||||
|
|
||||||
def strategy=(stratagem)
|
|
||||||
connections.each { |connect| connect.strategy = stratagem }
|
|
||||||
remove_duplicates
|
|
||||||
end
|
|
||||||
|
|
||||||
def orm=(orm)
|
|
||||||
connections.each { |connect| connect.orm = orm }
|
|
||||||
remove_duplicates
|
|
||||||
end
|
|
||||||
|
|
||||||
def start
|
def start
|
||||||
connections.each { |connection| connection.start }
|
connections.each { |connection| connection.start }
|
||||||
end
|
end
|
||||||
|
@ -84,13 +101,6 @@ module DatabaseCleaner
|
||||||
@cleaners.values
|
@cleaners.values
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_duplicates
|
|
||||||
@cleaners = @cleaners.reduce({}) do |cleaners, (key, value)|
|
|
||||||
cleaners[key] = value unless cleaners.values.include?(value)
|
|
||||||
cleaners
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def called_externally?(caller)
|
def called_externally?(caller)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
module DatabaseCleaner
|
module DatabaseCleaner
|
||||||
class Configuration
|
class Configuration
|
||||||
def stub_cleaners(array)
|
def stub_cleaners(array)
|
||||||
@cleaners = array.each.with_index.reduce({}) do |hash, (cleaner, index)|
|
@cleaners = array.each.with_index.reduce(Cleaners.new) do |cleaners, (cleaner, index)|
|
||||||
hash.merge index => cleaner
|
cleaners.merge index => cleaner
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue