Você sabia que o DataMapper pode ser configurado com um hash especificando as opções? Embora não esteja muito claro em sua documentação, é possível!
Por exemplo, configurar um adaptador MySQL com DataMapper, seguindo a documentação:
DataMapper.setup( :default,
"mysql://<user>:<password>@<hostname>:<port>/<database>")
Como posso obter o resultado com um Hash
?
options = { adapter: mysql, hostname: "<hostname>", port: "<port>",
user: "<user>", password: "<password>" }
DataMapper.setup(:default, options)
“Ah, eu vi o que você fez aí!”. O DataMapper reconstitui o adaptador passado pelo Hash
cria a conexão de banco de dados correta.
Você quer tornar ainda melhor? Coloque essas opções em um arquivo YAML:
#datbase.yml
adapter: mysql
hostname: "<hostname>"
port: "<port>"
user: "<user>"
password: "<password>"
E depois carregue no DataMapper:
options = YAML.load_file('database.yml')
DataMapper.setup(:default, options)
Você também pode colocar várias configurações em um arquivo YAML e carregar vários DataMapper’s:
#datbase.yml
default:
adapter: mysql
hostname: "<hostname>"
port: "<port>"
user: "<user>"
password: "<password>"
another_database:
adapter: mysql
hostname: "<another_hostname>"
port: "<port>"
user: "<another_user>"
password: "<another_password>"
options = YAML.load_file('database.yml')
DataMapper.setup(:default, options['default'])
DataMapper.setup(:another, options['another'])