Truques de Ruby: DATA e __END__

Em 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

 1 require "yaml"
 2 obj = YAML::load(DATA)
 3 
 4 p obj
 5 
 6 __END__
 7 ---
 8   -
 9     name: Adam
10     age: 28
11     admin: true
12   -
13     name: Maggie
14     age: 28
15     admin: false

Neste post de onde peguei o exemplo acima, apresenta outro uso com sinatra.

blog comments powered by Disqus