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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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.