Ruby funkelt
Was für eine Sorte Sprache ist Ruby?
Ist Ruby was für mich?
Warum haben wir dieses Buch geschrieben?
Ruby Versionen
Ruby installieren
Building Ruby
Ruby laufen lassen
Interaktives Ruby
Ruby-Programme
Resourcen
Danksagungen
Notationen
Ruby ist eine objekt-orientierte Sprache
Einige Ruby Grundlagen
Arrays und Hashes
Kontroll-Strukturen
Reguläre Ausdrücke
Blöcke und Iteratoren
Lesen und Sreiben
Vorschau und Ausblick
Vererbung und Meldungen
Vererbung und Mixins
Objekte und Attribute
Beschreibbare Attribute
Virtuelle Attribute
Klassen-Variablen und Methoden-Variablen
Klassen-Variablen
Klassen-Methoden
Singletons und andere Konstruktoren
Zugriffs-Kontrolle
Zugriffskontrolle setzen
Variablen
Container
Arrays
Hashes
Einen SongList-Container implementieren
Blocks and Iterators
Iteratoren implementieren
Ruby verglichen mit C++ und Java
Blöcke für Transaktionen
Zahlen
Zeichenketten (Strings)
Mit Strings arbeiten
Bereiche (Ranges)
Ranges als Reihen
Bereiche als Bedingungen
Bereiche als Intervalle
Reguläre Ausdrücke
Muster
Anker
Zeichenklassen
Wiederholung
Alternation
Gruppierung
Musterbasierte Ersetzung
Backslashsequenzen in der Ersetzung
Objektorientierte reguläre Ausdrücke
Methoden definieren
Argumentlisten variabler Länge
Methoden und Blöcke
Methoden aufrufen
Arrays in Methodenaufrufen expandieren
Dynamischere Blöcke
Hash-Argumente sammeln
Operatorenausdrücke (Operator Expressions)
Verschiedene Ausdrücke
Befehlsexpansion
Backquotes sind weich
Zuweisung
Parallelzuweisung
Verschachtelte Zuweisungen
Andere Formen von Zuweisung
Bedingte Ausführung
Boolsche Ausdrücke
Defined?, And, Or, und Not
If und Unless
Modifikatoren für If und Unless
Case Ausdrücke
Schleifen
Iteratoren
For ... In
Break, Redo und Next
Retry
Variablenscope und Schleifen
Die Exception Klasse
Exceptions behandeln
Aufräumen
Nochmal auf Start
Exceptions auslösen
Informationen zu Exceptions hinzufügen
Catch und Throw
Namensräume
Mixins
Instanzvariablen in Mixins
Iteratoren und das Modul Enumerable
Andere Dateien einfügen
Was ist ein IO-Objekt?
Dateien öffnen und schließen
Dateien lesen und schreiben
Lese-Iteratoren
In Dateien schreiben
Aber ich vermisse meinen Iostream aus C++!
Mit Netzwerken reden
Multithreading
Ruby-Threads erzeugen
Threads manipulieren
Thread-Variablen
Threads und Exceptions
Kontrolle des Thread-Schedulers
Gegenseitiger Ausschluss
Die Mutex Klasse
Condition-Variablen
Multiple Prozesse laufen lassen
Produzieren neuer Prozesse
Unabhängige Kinder
Blöcke und Unterprozesse
Der Ruby-Debugger
Interaktives Ruby
Editor Support
Es klappt aber nicht!
Aber es ist zu langsam!
Erzeuge lokale Variablen außerhalb von Blöcken
Benutze den Profiler
Kommandozeilen-Argumente
Kommandozeilen-Optionen
ARGV
Programm-Terminierung
Umgebungs-Variablen
Umgebungsvariablen schreiben
Wo Ruby seine Module findet
Build-Umgebung
CGI-Scripts schreiben
Verwendung von cgi.rb
Quoting
Formulare
Formulare und HTML erzeugen
Cookies
Sessions
Ruby in HTML einbetten
eruby
eruby in Apache installieren
Performance steigern
Eine einfache Tk-Applikation
Widgets
Setzen von Widget-Optionen
Daten vom Widget holen
dynamisches Setzen/Abrufen von Optionen
Beispiel-Applikation
Verknüpfung von Events
Canvas
Scrolling
Nur noch eine Sache
Übersetzungen aus der Perl/Tk-Dokumentation
Objekt-Erzeugung
Optionen
Variable-Referenzen
Ruby Ports
Ruby unter Windows laufen lassen
Win32API
Windows Automation
Properties setzen und lesen
Benamte Argumente
for each
Ein Beispiel
Optimierung
Ruby Objekte in C
VALUE als Zeiger
VALUE als Immediate-Objekt
Schreiben von Ruby Code in C
Auswertung von Ruby Ausdrücken in C
Direkte Verwendung von Daten in Ruby und C
Gemeinsames Verwenden von Variablen
C Strukturen einpacken
Ein Beispiel
Speicher Allokation
Erzeugen einer Erweiterung
Erzeugen eines Makefiles mit Hilfe von extconf.rb
Dynamisches Binden
Statisches Binden
Einbetten eines Ruby Interpreters
Ruby an andere Sprachen anbinden
Ruby C API
Layout der Quellen
BEGIN und END Blöcke
Allgemein begrenzter Input
Die Basis-Typen
Integer und Fließkomma-Zahlen
Strings
Ranges
Arrays
Hashes
Bedingungen für den Hash-Schlüssel
Symbole
Reguläre Ausdrücke
Optionen für Reguläre Ausdrücke
Muster für reguläre Ausdrücke
Ersetzungen
Erweiterungen
Namen
Variablen/Methoden-Mehrdeutigkeit
Variablen und Konstanten
Gültigkeitsbereich von Konstanten und Variablen
Vordefinierte Variablen
Informationen über Exceptions
Variablen zur Muster-Erfassung
Input/Output-Variablen
Variablen der Ausführungs-Umgebung
Standard Objekte
Globale Konstanten
Ausdrücke
Einfache Terme
Operator-Ausdrücke
Mehr über Zuweisungen
Parallele Zuweisung
Block-Ausdrücke
Boolsche Ausdrücke
Wahrheits-Werte
And, Or, Not und Defined?
Vergleichs-Operatoren
Bereiche in Boolschen Ausdrücken
Reguläre Ausdrücke in boolschen Ausdrücken
If und Unless Ausdrücke
If und Unless Modifikatoren
Ternärer Operator
Case-Ausdruck
Schleifen
While- und Until-Modifikatioren
Break, Redo, Next und Retry
Methoden-Definition
Methoden-Argumente
Aufruf einer Methode
super
Operator-Methoden
Attribut-Zuweisung
Element-Referenz-Operator
Aliasing
Klassen-Definition
Objekt-Erzeugung durch Klassen
Deklaration von Klassen-Attributen
Modul-Definitionen
Mixins --- Module einbinden
Modul-Funktionen
Zugriffs-Kontrolle
Blöcke, Closures und Proc-Objekte
Proc-Objekte
Exceptions
Exceptions auslösen
Exception-Behandlung
Block-Wiederholung, Retry
Catch und Throw
Wie Klassen und Objekte interagieren
Das Basis-Objekt für jeden Tag
Und was ist mit dem Meta?
Objekt-spezifische Klassen
Mixin-Module
Objekte erweitern
Klassen- und Modul-Definitionen
Klassen-Namen sind Konstanten
Die Umgebung der Top-Level-Ausführung
Vererbung und Sichtbarkeit
Objekte einfrieren
Safe-Levels
Tainted Objekte
Betrachtung von Objekten
Betrachtung des Inneren von Objekten
Betrachtung von Klassen
Betrachtung des Inneren von Klassen
Dynamischer Aufruf von Methoden
Performance-Überlegungen
System-Hooks
Runtime-Callbacks
Ablaufverfolgung des Programms
Wo kommen wir her?
Marshaling und verteiltes Ruby
Empfohlene Startegie zur maßgeschneiderten Serialisierung
Verteiltes Ruby
Kompilier-Zeit? Laufzeit? Jederzeit!
Das Besuchs-Muster
Socket-Level Access
Higher-Level Access
CGI Development
HTML-Ausgabemethoden
Werte in mehrteiligen Formularen
Inline-Formatierung
Kreuz-Referenzen
Methoden-Namen
Andere Dateien einbinden
rdtool benutzen
Haftungs-Ausschluss
Komandozeile
Initialisierungs-Datei
Kommandos
Den Prompt konfigurieren
Beschränkungen
rtags, xmp nd die Frame-Klasse
rtags
xmp
Die Klasse Frame
Web Sites
Download Sites
Usenet-Newsgruppen
Mailing-Listen
Bug-Reports
|