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?

questionAnswers(2)

yourAnswerToTheQuestion