DRier database.yml
01Oct08
Ao criar um novo projeto rails é criado juntamente com o projeto um arquivo database.yml parecido com este:
development: adapter: mysql encoding: utf8 database: project_development username: root password: password socket: /var/run/mysqld/mysqld.sock test: adapter: mysql encoding: utf8 database: project_test username: root password: password socket: /var/run/mysqld/mysqld.sock production: adapter: mysql encoding: utf8 database: project_production username: root password: password socket: /var/run/mysqld/mysqld.sock
Mas, como sempre ouvimos, um dos conceitos base do RoR é o DRY (Don’t Repeat Yourself – Não repita a si mesmo). E como podemos ver neste arquivo existem diversas linhas duplicadas.
De uma forma geral as bases de dados de desenvolvimento, produção e teste residem na mesma máquina e portanto temos algumas linhas que sempre iremos repetir:
adapter: mysql encoding: utf8 username: root password: password socket: /var/run/mysqld/mysqld.sock
Googlando não é nada difícil encontrar o seguinte modelo de database.yml conhecido como “DRY database.yml”:
login: &login adapter: mysql username: root password: password socket: /var/run/mysqld/mysqld.sock development: <<: *login database: project_development test: <<: *login database: project_test production: <<: *login database: project_production
Mas, concordemos que ainda existe uma certa duplicação de código. Então lá vai a versão DRier do database.yml:
login: &login adapter: mysql username: root password: password host: localhost <% ["development", "test", "production"].each do |environment| %> <%= environment %>: <<: *login database: biblemarks_<%= environment %> <% end %>
Filed under: Ruby on Rails | Leave a Comment
Tags: dry, rails, ruby, rubyonrails, yml
No Responses Yet to “DRier database.yml”