Ruby Spickzettel
Case-Konstrukt
--------------
i = 10
case i
when 10, 20, 30
puts "i ist 10 oder 20 oder 30"
when 1
puts "i ist 1"
else
puts "i ist irgendwas anderes"
end
Modusstring Dateioperationen
----------------------------
r - nur lesen
r+ - nur lesen, beginnt am Anfang der Datei
w - nur schreiben
w+ - lesen + schreiben
a - schreiben anhängend (append)
a+ - lesen + schreiben am Ende
b - Binärmodus, nur für Dos/Windows (z.B. wb, rb)
Globale Variablen
-----------------
Exceptions:
$! Exception Information Message.
$@ Backtrace of the last Exception.
Reguläre Ausdrücke:
$& gefundenes Suchmuster der letzten Aktion.
nil, wenn nicht gefunden.
$` String, der dem Gefundenen vorausgeht.
$' String, der dem Gefundenen folgt
$+ Übereinstimmung der letzten Klammer(?)
$1,
$2,... Teilstrings, die durch Klammern im Suchmuster
getrennt sind.
$~ Information der letzten Musteraktion. $1 - $9 werden
hieraus abgeleitet und eine Änderung von bspw. $~[3]
ändert $3. Die Variable ist lokal zum aktuellen
Gültigkeitsbereich
$= Groß/Kleinschreibung berücksichtigen. Ein Wert ungleich
nil führt dazu, das sie nicht berücksichtigt wird.
Default ist nil.
IO:
$/ Input Record Separator, \n default, wenn nil, dann
wird das gesamte File mit einmal eingelesen.
$\ Output Record Separator für print und io#write.
Default ist nil.
$, Output Field Separator für print und Array#join
$; Default Separator für String#split.
$-F
$. Current input line Number, des zuletzt gelesenen Files.
$< Aktuelles Input File. stdin, wenn kein File übergeben.
ARGF
$> Aktuelles Output File. stdout ist default.
$_ Zuletzt gelesene Zeile des Input Files.
(gets oder readline)
nil, wenn eof.
$stdin Standard Input
$stdout Standard Output
$stderr Standard Error
$defout Default Output
Environment:
$0 Filename des Ruby-Skripts
$* Command line arguments, welche dem Skript übergeben
wurden. (Array)
ARGV
$$ Prozess Nummer des Ruby-Skripts.
$: Array, welches alle Suchpfade beinhaltet,
$LOAD_PATH wo load und require suchen.
$-I
$" Array, Liste von allen geladenen Modulen, die durch
require geladen wurden. Require nutzt diese, um Module
nicht doppelt zu laden.
$VERBOSE Verbose Flag, welches durch -v gesetzt wird
$-v
$DEBUG Status des -d Switches
$-d
$-a Wahr, wenn -a gesetzt wurde
$-i Wenn -i gewählt, dann steht hier die extension
$-l Option -l ist gesetzt.
$-p Option -p ist gesetzt.
$? Exitcode eines externen Programmes, welches mit `cmd`
ausgeführt wurde. Sollte mit $?.to_i >> 8 korrigiert
werden. 0 entspricht keinem Fehler unter Linux.
Prozess:
$? Status des zuletzt gestarteten Child-Prozesses
Standard-Objekte:
ENV Ein Hash, mit dem man auf alle Environment-Variablen Zugriff hat.
Bsp: ENV["PATH"] = '/usr/bin'
false Der Wert false
nil Der Wert unitialisiert
self Der Empfänger der aktuellen Methode
true Der Wert true
Globale Konstanten
------------------
TRUE true
FALSE false
NIL nil
STDIN stdin, default value for $stdin
STDOUT stdout
STDERR stderr
ENV Environment Variablen, hash
ARGF Alias zu $<
ARGV Alias zu $*
DATA ?
VERSION Ruby Version String
RUBY_RELEASE_DATE Release String
RUBY_PLATFORM Platform