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.