Confirguração em arquivo externo YAML, simples e rápido no RubyOnRails
Fiz hoje a tarde esse simples código para eu nunca mais precisar colocar configuação hardcoded (dentro do código), e sim em um arquivo externo como este que no rails eu adicionei em config/site.yml:
admin_email: admin@mysite.com url: http://www.mysite.com site: --title: My Site --description: --keywords:
Atenção os — são 2 espaços, yaml exige que você use espaços invês de tabs, configure seu editor para usar 2 espaços como tab, inflizmente o wordpress não mantém os espaços corretamente, será que o typo faria isso?
No final do config/environment.rb, ou a inicialização de qualquer programa em ruby, coloque as seguintes linhas:
config = YAML::load(File.open("#{RAILS_ROOT}/config/site.yml"))
config.each { |key, value| eval "$#{key.upcase} = #{value.inspect}" }
Elas leem o arquivo e definem as variáveis globais, neste caso você teria as seguintes variáveis globais:
$ADMIN_EMAIL, $URL e $SITE, sendo a última um hash, com por exemplo $SITE[’title’].
Qualquer dúvida ou problema podem comentar.
Atualizado em 03/2007.