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