thoughtbot--shoulda-matchers/spec/support/tests/database_configuration.rb

31 lines
762 B
Ruby

require_relative 'database_configuration_registry'
require 'delegate'
module Tests
class DatabaseConfiguration < SimpleDelegator
ENVIRONMENTS = %w(development test production)
attr_reader :adapter_class
def self.for(database_name, adapter_name)
config_class = DatabaseConfigurationRegistry.instance.get(adapter_name)
config = config_class.new(database_name)
new(config)
end
def initialize(config)
@adapter_class = config.class.to_s.split('::').last
super(config)
end
def to_hash
ENVIRONMENTS.each_with_object({}) do |env, config_as_hash|
config_as_hash[env] = {
'adapter' => adapter.to_s,
'database' => "#{database}_#{env}",
}
end
end
end
end