Usando DRY no database.yml

Post movido para: http://blog.guilhermegarnier.com/2008/02/15/usando-dry-no-databaseyml/

Um dos princípios do desenvolvimento em Rails é o DRY (don’t repeat yourself). A idéia é que você nunca repita o código que já escreveu uma vez, procurando reaproveitar sempre que possível.

No caso das views, por exemplo, isso é bem simples de implementar, através do uso de partials. Você deve criar um arquivo de view começando com “_” (ex: _item.rhtml) e usar o comando render em outra view para carregar o partial dentro do layout (ex: render :partial => ‘item’).

Outro dia descobri uma maneira muito interessante de usar essa técnica no arquivo database.yml. Esse arquivo mantém as configurações de banco de dados para cada um dos ambientes – development, test e production. Porém, geralmente alguns destes parâmetros de configuração são iguais. O adapter, por exemplo, muito provavelmente é o mesmo; o username, senha e host também podem se repetir.

Segue abaixo um exemplo de como definir estas configurações sem repetições:

login: &login
  adapter: mysql
  username: username
  password: password
  host: mysql.example.com

development:
  <<: *login
  database: app_dev

test:
  <<: *login
  database: app_test

production:
  <<: *login
  database: app_prod

Só encontrei um problema: se você usar o Aptana RadRails para desenvolver, usando essa técnica, o modo “Data perspective”, que permite analisar a estrutura do banco de dados e executar querys, retorna uma mensagem de erro (“Invalid YML syntax”). Fora isso, está tudo funcionando bem. No NetBeans não há este problema.

3 Responses to “Usando DRY no database.yml”


  1. 1 Chris Williams fevereiro 22, 2008 às 5:21 pm

    Just to let you know, I’ve just checked in a bug fix for this in RadRails. It should work as expected in RadRails 1.0 when we release that (in roughly 1-2 weeks).

  2. 2 ggarnier fevereiro 22, 2008 às 7:31 pm

    OK Chris, thanks for the feedback. I’ll test it again as soon as it’s fixed


  1. 1 IDEs para Ruby on Rails « Guilherme Garnier Trackback em maio 27, 2008 às 2:18 pm

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




@guilhermgarnier

Erro: o Twitter não respondeu. Por favor, aguarde alguns minutos e atualize esta página.

Estatísticas

  • 58,044 hits
Linux Counter

%d blogueiros gostam disto: