|
|||
Sidebar: Das ganz neuste Ruby |
Für diejenigen, die immer das Allerneuste, Frisch-aus-der-Presse und Ungetestete
haben müssen (wie wir, als wir dieses Buch schrieben) gibt es Entwickler-Versionen direkt aus der
Entwickler-Werkstatt.
Die Ruby-Entwickler benutzen CVS (Concurrent Version System, frei erhältlich bei
http://www.cvshome.com) als ihr Versions-Kontroll-System. Man kann als anonymer User Dateien aus ihrem
Archiv auschecken (also lesen) mit den folgenden CVS-Kommandos:
% cvs -d
:pserver:[email protected]:/home/cvs login (Logging
in to [email protected]) CVS password: guest % cvs -d
:pserver:[email protected]:/home/cvs checkout
ruby Der komplette Quell-Code-Baum, just wie die Entwickler ihn gerade auch sehen, wird nun in ein
``Ruby''-Unterverzeichnis auf dem lokalen Computer kopiert, wobei der dort vorhandene Quellcode-Baum aktualisiert
wird von einer Quelle auf der anderen Seite der Welt. Sind das nicht großartige Zeiten, in denen wir
leben?
|
README
, die die
Installations-Prozedur detailiert beschreibt. Kurz gesagt erzeugt man Ruby auf einem POSIX-basierten
System mit den selben vier Kommandos wie bei den meisten anderen Open-Source-Anwendungen
auch: ./configure
, make
,
make test
und make install
. Man kann Ruby auch unter anderen Umgebungen
(inklusive Windows) erzeugen, mit einer POSIX-Emulation wie cygwin
[Siehe
http://sourceware.cygnus.com/cygwin für Einzelheiten.] oder mit einem
systemeigenen Compiler --- beschreiben ab ``ntsetup.bat
'' im win32
-Unterverzeichnis.
% ruby puts "Hello, world!" ^D Hello, world! |
puts
-Ausdruck und ein End-of-File-Zeichen eingegeben (bei unserem System ist das Control-D). Das funktioniert, aber es ist unangenehm, wenn man einen Tippfehler macht, außerdem kann man nicht wirklich sehen, was vor sich geht während man tippt.
Im Beispiel
-Ordner der Ruby-Distribution findet man ein Script namens ``eval.rb
''. Das ist eine Stufe besser, denn es zeigt uns den Wert jedes Ausdrucks so wie er eingegeben wird:
% cd sample % ruby eval.rb ruby> a = "Hello, world!" "Hello, world!" ruby> puts a Hello, world! nil ruby> ^D % |
puts
sehen und danach den Rückgabewert von puts
(der nil
ist).
Das ist alles schön und gut, außer dass Ausdrücke, die über mehrere Zeilen gehen, nicht funktionieren, und man kann die aktuelle Zeile nicht bearbeiten oder gar zurückgehen und vorhergehende Zeilen benutzen (wie man das mit dem Kommando history in einer Shell machen kann).
Als nächste Stufe bei eval.rb
haben wir irb
---Interaktives
Ruby. irb
ist eine Ruby-Shell, komplett mit einer Kommandozeilen-History, der Möglichkeit, Zeilen zu bearbeiten und job control (der Übersetzer: ach ja?). Das Ganze ist recht gut konfigurierbar und hat einen Haufen Optionen, so viele, dass es einen eigenen Anhang ab Seite 523 besitzt. Wir empfehlen dir, dich mit irb
vertraut zu machen, damit du einige unserer Beispiele interaktiv ausprobieren kannst.
% ruby myprog.rb |
#!/usr/bin/env ruby
benutzt, damit wird der Pfad für ruby
gesucht und dann ausgeführt.]
#!/usr/local/bin/ruby -w puts "Hello, World!" |
chmod +x myprog.rb
), dann kann man sie unter Unix als Programm laufen lassen:
% ./myprog.rb Hello, World! |
Date
-Module verstanden hatten. Guy Decoux und
Clemens Hintze beantworteten uns geduldig alle Fragen, wie man Ruby-Erweiterungen schreibt und Masaki Suketa half uns das WinOLE
-Modul zu verstehen.
Obwohl die meisten Ruby-Dokumentationen in Japanisch sind, gibt es eine wachsende Anzahl von englischen Übersetzungen (der Übersetzer: vielleicht ja auch bald deutschen), das meiste von japanischen Entwicklern geschrieben, deren Umgang mir dem Englischen uns ein unablässiger Quell der Freude war. Obwohl es dabei zu viele individuelle Beiträge gab um sie alle zu nennen, möchten wir einen einzelnen herausstellen, Goto Kentaro, der einen großen Band mit hoch-qualitativer Dokumentation produziert und ins Netz gestellt hat.
Schließlich müssen wir Yukihiro ``Matz'' Matsumoto danken, dem Erfinder von Ruby. Wir haben die Fragen nicht mehr zählen können, die wir ihm gestellt haben, und auch nicht all seine detaillierten und geduldigen Antworten. Matz hat nicht nur eine wirklich tolle Sprache erfunden, er hat auch eine wunderbar unterstützende und offene Kultur vorangetrieben, in der diese Sprache sich entwickeln kann.
Danke euch allen. Domo arigato gozaimasu.
Dave Thomas und Andy Huntclass SampleCode def run #... end end |
Fred#doIt
eine Referenz auf die Instanz-Methode (doIt
) der Klasse Fred
, während Fred.new
[In manchen anderen Ruby-Dokumentationen findet man Klassen-Methoden in Form von
Fred::new
. Das ist absolut gültige Ruby-Syntax; wir glauben einfach nur, dass Fred.new
beim Lesen weniger störend ist.] eine Klassen-Methode ist und Fred::EOF
eine Klassen-Konstante ist.
Das Buch enthält viele Schnipsel Ruby-Code. Wo es möglich war, haben wir versucht zu zeigen was passiert, wenn sie laufen. In einfachen Fällen zeigen wir den Wert von Ausdrücken auf der selben Zeile wie die Ausdrücke. Zum Beispiel:
a = 1 |
||
b = 2 |
||
a + b |
» | 3 |
a = 1 |
» | 1 |
b = 2 |
» | 2 |
a + b |
» | 3 |
3.times { puts "Hello!" } |
Hello! Hello! Hello! |
ruby [flags]*[progname][arguments]+ |