Rubinowy zakres danych po __END__
Używam tej sztuczki Ruby z__END__
iDATA
umieścić niektóre dane w moim pliku programu:
class Foo
def initialize()
puts DATA.read.inspect
end
end
puts DATA.read.inspect
Foo.new
__END__
test
Generuje to następujące dane wyjściowe:
"test"
""
ZałożyłemDATA
byłby taki sam globalnie, ale wewnątrz klasy nie ma treści. Jak uzyskać dostęp do danych po__END__
wewnątrz klasy (poza oczywistym i brzydkim rozwiązaniem wykorzystującym zmienne globalne)?
DODANY: Widzę, jak czytamDATA
dwa razy nic mi nie daje za drugim razem. mógłbym użyćrewind
wrócić na początek, aleread
następnie daje mi cały kod źródłowy mojego programu. Czy jest łatwiejszy sposób na dotarcie do tej części po__END__
w sprawie kolejnych zastosowańDATA
, czy może lepiej byłoby raz go przeczytać i przechowywać w innym miejscu do wykorzystania w przyszłości?