Truques de Ruby: DATA e __END__
Publicado; 05/03/2011 Filed under: ruby, tutorial | Tags: dicas, ruby, truques Comentários desativadosEm Ruby, temos algumas CONSTANTES GLOBAIS que facilitam nossa vida. Nesse post, lhes apresento DATA e __END__.
Normalmente os arquivos de scripts em Ruby são finalizados com EOF, mas você pode indicar onde será o fim do script, adicionando a constante __END__ e com isso, todo bloco abaixo de __END__ não será processado pelo Ruby como comandos da linguagem. Então, podemos usar a constante DATA, que é uma instância de File do arquivo de script atual, porém considerando apenas o conteúdo que está abaixo da constante __END__. Vejamos alguns exemplos para entender melhor como funciona
require "yaml"
obj = YAML::load(DATA)
p obj
__END__
---
-
name: Adam
age: 28
admin: true
-
name: Maggie
age: 28
admin: false
Neste post de onde peguei o exemplo acima, apresenta outro uso com sinatra.
Nova série: “Eu não sabia que…”
Publicado; 29/10/2008 Filed under: ruby | Tags: dicas, eu não sabia que, ruby, singleton Comentários desativadosAo peger uma instância de um objeto qualquer e adicionar dinâmicamente um método a esta instância, ela se torna um singleton.
$ irb >> o = Object.new => #<Object:0x393cbc> >> def o.name; puts 'Tino Gomes'; end => nil >> o.singleton_methods => ["name"] >>
Legal, não? Não! Ah! tá, me dixculpa. :/
DRY config/database.yml
Publicado; 23/03/2008 Filed under: ruby | Tags: config, database, dicas, dry, rails, ruby, yaml Comentários desativadosSempre esqueço como fazer um database.yml limpo, então resolvi publicar.
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
Este exemplo foi extraído aqui.





