I'm using this Ruby trick with __END__
and DATA
to put some data inside my program file:
class Foo
def initialize()
puts DATA.read.inspect
end
end
puts DATA.read.inspect
Foo.new
__END__
test
This generates the following output:
"test"
""
I had assumed DATA
would be the same globally, but inside the class it has no content. How would I get access to the data after __END__
inside a class (apart from the obvious and ugly solution using global variables)?
ADDED: I see how reading DATA
twice gives me nothing the second time. I could use rewind
to get back to the start, but read
then gives me the entire source code of my program. Is there an easier way to get to just the part after __END__
on subsequent uses of DATA
, or would I be better of reading it once and storing it somewhere else for future use?