Die Programmiersprache Ruby (German Edition)
er
$x
auf
y
. Für Argumente in der Form
-x
setzt er
$x
auf
true
. Die vorverarbeiteten Argumente werden aus
ARGV
entfernt.
-S
Diese Option sucht relativ zu dem in der Umgebungsvariablen
RUBY_PATH
angegebenen Pfad nach der gewünschten Programmdatei. Wenn sie dort nicht gefunden wird, wird relativ zur Umgebungsvariablen
PATH
danach gesucht. Und wenn sie dann immer noch nicht gefunden wird, wird normal danach gesucht.
-
T
n
Diese Option setzt
$SAFE
auf
n
oder auf
1
, wenn
n
weggelassen ist. Siehe „10.5 Sicherheit“ für weitere Informationen.
-x [Verzeichnis]
Diese Option extrahiert Ruby-Quellcode aus der Programmdatei, indem sie sämtliche Zeilen bis zur ersten, die mit
#!ruby
beginnt, entfernt. Aus Gründen der Kompatibilität mit der großgeschriebenen Option
-X
erlaubt auch diese Option die Angabe eines Verzeichnisses.
10.2 Die Top-Level-Umgebung
Wenn der Ruby-Interpreter startet, wird eine Reihe von Klassen, Modulen, Konstanten, globalen Variablen und globalen Funktionen definiert und steht Programmen zur Verfügung. Die nachfolgenden Unterabschnitte listen diese vordefinierten Features auf.
10.2.1 Vordefinierte Module und Klassen
Wenn der Ruby-1.8-Interpreter startet, werden die folgenden Module definiert:
Comparable FileTest Marshal Precision
Enumerable GC Math Process
Errno Kernel ObjectSpace Signal
Diese Klassen werden beim Start definiert:
Array File Method String
Bignum Fixnum Module Struct
Binding Float NilClass Symbol
Class Hash Numeric Thread
Continuation IO Object ThreadGroup
Data Integer Proc Time
Dir MatchData Range TrueClass
FalseClass MatchingData Regexp UnboundMethod
Auch die folgenden Ausnahmeklassen werden definiert:
ArgumentError NameError SignalException
EOFError NoMemoryError StandardError
Exception NoMethodError SyntaxError
FloatDomainError NotImplementedError SystemCallError
IOError RangeError SystemExit
IndexError RegexpError SystemStackError
Interrupt RuntimeError ThreadError
LoadError ScriptError TypeError
LocalJumpError SecurityError ZeroDivisionError
Ruby 1.9 fügt die folgenden Module, Klassen und Ausnahmen hinzu:
BasicObject FiberError Mutex VM
Fiber KeyError StopIteration
Sie können die vordefinierten Module, Klassen und Ausnahmen in Ihrer Implementierung mit Code wie diesem prüfen:
# Alle Module ausgeben (Klassen ausschließen)
puts Module.constants.sort.select {|x| eval(x.to_s).instance_of? Module}
# Alle Klassen (außer Exceptions) ausgeben
puts Module.constants.sort.select {|x|
c = eval(x.to_s)
c.is_a? Class and not c.ancestors.include? Exception
}
# Alle Exceptions ausgeben
puts Module.constants.sort.select {|x|
c = eval(x.to_s)
c.instance_of? Class and c.ancestors.include? Exception
}
10.2.2 Top-Level-Konstanten
Wenn der Ruby-Interpreter gestartet wird, werden die folgenden Top-Level-Konstanten definiert (zusätzlich zu den zuvor aufgelisteten Modulen und Klassen). Ein Modul, das eine Konstante mit demselben Namen definiert, kann noch immer auf diese Top-Level-Konstanten zugreifen, indem es ihnen
::
voranstellt. Sie können die Top-Level-Konstanten Ihrer Implementierung wie folgt auflisten:
ruby -e 'puts Module.constants.sort.reject{|x| eval(x.to_s).is_a? Module}'
ARGF
Ein
IO
-Objekt, das den Zugriff auf eine virtuelle Verkettung von Dateien ermöglicht, die in
ARGV
genannt werden, oder auf die Standardeingabe, wenn
ARGV
leer ist. Ein Synonym für
$<
.
ARGV
Ein Array, das die auf der Kommandozeile angegebenen Argumente enthält. Ein Synonym für
$*
.
DATA
Wenn Ihre Programmdatei das Token
__END__
in einer Zeile für sich enthält, dann ist diese Konstante als Datenstrom definiert, der Zugriff auf die Zeilen der Datei hinter dem
__END__
erlaubt. Wenn die Programmdatei kein
__END__
enthält, ist diese Konstante nicht definiert.
ENV
Ein Objekt, das sich wie ein Hash verhält und Zugriff auf die für den Interpreter gültigen Umgebungsvariablen ermöglicht.
FALSE
Ein veraltetes Synonym für
false
.
NIL
Ein veraltetes Synonym für
nil
.
RUBY_PATCHLEVEL
Ein String, der das Patchlevel des Interpreters angibt.
RUBY_PLATFORM
Ein String, der die Plattform des Ruby-Interpreters angibt.
RUBY_RELEASE_DATE
Ein String, der das Veröffentlichungsdatum des Ruby-Interpreters angibt.
RUBY_VERSION
Ein String, der die Version der vom Ruby-Interpreter unterstützten Ruby-Sprache angibt.
STDERR
Der Standard-Fehlerausgabedatenstrom. Dies ist der Standardwert der Variablen
$stderr
.
STDIN
Der Standardeingabedatenstrom. Dies ist der Standardwert der
Weitere Kostenlose Bücher