Ruby-Umfang von DATA nach __END__
Ich benutze diesen Ruby-Trick mit__END__
undDATA
um einige daten in meine programmdatei zu schreiben:
class Foo
def initialize()
puts DATA.read.inspect
end
end
puts DATA.read.inspect
Foo.new
__END__
test
Dies erzeugt die folgende Ausgabe:
"test"
""
Ich hatte angenommenDATA
würde global gleich sein, aber innerhalb der Klasse hat es keinen Inhalt. Wie würde ich danach Zugang zu den Daten bekommen?__END__
innerhalb einer Klasse (abgesehen von der offensichtlichen und hässlichen Lösung mit globalen Variablen)?
HINZUGEFÜGT: Ich sehe wie lesendDATA
zweimal gibt mir das zweite mal nichts. ich könnte benutzenrewind
um wieder an den start zu kommen, aberread
dann gibt mir den gesamten quellcode meines programms. Gibt es einen einfacheren Weg, um genau zum nächsten Teil zu gelangen?__END__
bei späteren Verwendungen vonDATA
, oder ist es besser, wenn ich es einmal lese und für die spätere Verwendung an einem anderen Ort aufbewahre?