Die Programmiersprache Ruby

Blog| Forum| Wiki  

Dieser Artikel soll eine Übersicht über die von Ruby verwendeten Klassen, Module und Konstanten geben.

Inhaltsverzeichnis

Konstanten

Eine Liste der von Ruby vordefinierten Konstanten.

  • ARGF: Auf der Kommandozeile übergebene Datei, oder besser, deren Inhalt.
  • ARGV: Auf der Kommandozeile übergebene Argumente.
  • Data: Dateideskriptor für den Bereich nach dem __END__-Token.
  • ENV: Zugriff auf die Umgebungsvariablen (engl. Environment variables).
  • FALSE: Veralteter Verweis auf false.
  • NIL: Veralteter Verweis auf nil.
  • PLATFORM: Veralteter Verweis auf RUBY_PLATFORM. <1.9
  • RELEASE_DATE: Veralteter Verweis auf RUBY_RELEASE_DATE. <1.9
  • RUBY_COPYRIGHT: Copyright-Zeile von Ruby. >1.8.7
  • RUBY_DESCRIPTION: Zusammenfassung von aller RUBY_-Konstanten außer RUBY_COPYRIGHT. >1.8.7
  • RUBY_ENGINE: Beschreibung der Interpreterimplementation. In der Standardimplementierung von Matz (MRI): ruby. >1.9
  • RUBY_PATCHLEVEL: Patchlevel der installierten Ruby-Version.
  • RUBY_PLATFORM: Gibt an, auf welcher Platform Ruby gerade läuft. Beispiel: i686-linux.
  • RUBY_RELEASE_DATE: Veröffentlichungsdatum der installierten Ruby-Version.
  • RUBY_REVISION: Revionsnummer des installierten Rubys. >1.9
  • RUBY_VERSION: Version des installierten Rubys.
  • STDERR: Verweist normalerweise immer auf den Errorstream der Kommandozeile. Sollte nicht neugesetzt werden; besser $stderr umleiten.
  • STDIN: Verweist normalerweise immer auf den Inputstream der Kommandozeile. Sollte nicht neugesetzt werden; besser $stdin umleiten.
  • STDOUT: Verweist normalerweise immer auf den Outputstream der Kommandozeile. Sollte nicht neugesetzt werden; besser $stdout umleiten.
  • TOPLEVEL_BINDING: Ein Binding-Objekt, das den Status des gesamten Interpreters zum Abrufzeitpunkt beinhaltet.
  • TRUE: Veralteter Verweis auf true.
  • VERSION: Veralteter Verweis auf RUBY_VERSION. <1.9

Module

Hier enthalten sind die schon im Core vorhandenen Module.

  • Comparable: Mixin für Vergleichsoperationen.
  • Enumerable: Mixin für Objekte, die #each implementieren.
  • Errno: Enthält betriebssystemabhängige Fehlermeldungen. Siehe auch weiter unten.
  • File::Constants: Mixin für die Klasse File. Enthält deren Konstanten.
  • FileTest
  • GC: Rubys Garbage Collector.
  • GC::Profiler>1.9
  • Gem>1.9
  • Gem::QuickLoader>1.9
  • Kernel: Mixin, das bereits in Object gemischt wird und nützliche Methoden wie puts enthält.
  • Marshal: Modul zur binären Serialisierung von Daten.
  • Math: Mathematik-Modul. Enthält Methoden wie #sin und #log.
  • ObjectSpace: Modul, das den Raum zwischen den Objekten und zwischen dem GC abdeckt.
  • Process: Dient zur Interaktion mit Prozessen.
  • Process::GID
  • Process::Sys
  • Process::UID
  • Signal: Modul zum Auffangen und Verarbeiten von Prozesssignalen wie SIGINT. SIGKILL kann freilich nicht aufgefangen werden.

Basisklassen

Diese Rubrik listet alle Klassen auf, die in Ruby standardmäßig verfügbar sind (d.h., ohne eine Datei per require zu laden). Einrückungen deuten Subklassen an.

BasicObject (Abstrakteste, oberste Klasse ab Ruby 1.9. Sollte man fast immer ignorieren.)>1.9
Object (Oberste Klasse in Ruby 1.8, zweitoberste in 1.9.)
Array (Geordnete Listen)
Binding (Abbild des Interpreters zu einem bestimmten Zeitpunkt)
Continuation (Einsprungpunkt)<1.9
Data >1.9
Dir (Verzeichnisse)
Exception (Fehlermeldungen)
Encoding >1.9
Enumerator (Support-Klasse für Enumerable Klassen)
FalseClass (Klasse von false).
Fiber >1.9
File::Stat
Hash (Schlüssel-Wert-Listen)
IO (Input-Output-Deskriptoren)
File (Datei-Deskriptoren)
MatchData (Ergebnis der Anwendung eines Regulären Ausdrucks auf einen String)
Method (Methoden)
Module (Module)
Class (Klassen)
Mutex>1.9
NilClass (Klasse von nil)
Numeric (Zahlen aller Art)
Float (Fließkommazahlen)
Integer (Ganzzahlen)
Fixnum (Kleine Ganzzahlen)
Bignum (Große Ganzzahlen)
Rational (gebrochene Zahlen)>1.9
Complex (Complexe Zahlen)>1.9
Proc (Prozeduren (lambdas)
Range (Bereiche (nicht nur Zahlen))
Regexp (Reguläre Ausdrücke)
String (Zeichenketten)
Struct
Symbol
Thread
ThreadGroup
Time (Zeiten)
TrueClass (Klasse von true)
UnboundMethod (Methode, die nicht an ein Objekt gebunden ist)

Exception-Klassen

Hier findest du eine Liste sämtlicher von Ruby verwendeten Exception-Klassen und kurze Beschreibungen, wann ein Fehler dieser Art auftritt. Verschachtelungen meinen Subklassen.

Exception

fatal (Ruby-intern)
NoMemoryError
ScriptError
LoadError
NotImplementedError
SyntaxError
SignalException
Interrupt
StandardError
ArgumentError
EncodingError>1.9
FiberError>1.9
IOError
EOFError
IndexError
KeyError>1.9
LocalJumpError
NameError
NoMethodError
RangeError
FloatDomainError
RegexpError
RuntimeError
SecurityError
SystemCallError
plattformabhängige exceptions (Errno::...)
ThreadError
TypeError
ZeroDivisionError
SystemExit
SystemStackError


  • ArgumentError: Der Wert von Argumenten, die einer Methode übergeben wurden, ist nicht korrekt. Oder die Anzahl an Argumenten ist nicht korrekt. Beispiel:
sprintf
  • EOFError: Versuch von einem File/IO-Stream zu lesen, obwohl das Ende erreicht ist.
  • IndexError: Aufruf eines Indexes für eine Stelle, die nicht definiert ist. Beispiel:
1
2
ary = [1, 2]
puts ary.fetch(-10)
  • IOError: Auf IO-Streams kann nicht korrekt zugegriffen werden.
  • LoadError: Eine Datei kann nicht geladen werden, weil sie nicht gefunden wird. Beispiel:
require "gibtsnich"
  • LocalJumpError: Sprungfehler im Quelltext, d.h. eine gesuchte Stelle wurde nicht gefunden. Beispiel:
1
2
3
4
def a
  yield
end
a
  • NotImplementedError: Aufruf eines Features, welches nicht implementiert ist. Beispiel: Aufruf von fork auf Windows.
  • NoMemoryError: Der Speicher des Computers reicht zur Berechnung nicht mehr aus. Beispiel potenzierende Endlosschleife:
1
2
$val=0
loop{$val **= 20}
  • RegexpError: Fehler in einem regulären Ausdruck.
  • SyntaxError: Syntax-Fehler im Quellcode. Beispiel:
def a
  • TypeError: Typkonflikt: Ein Objekt ist von einer falschen Klasse. (wird selten benutzt aufgrund von Duck Typing). Beispiel:
Time.new + "Hello"


Siehe auch