Mit Ruby programmieren

Der Ruby Interpreter

Unter Linux lässt sich der Ruby Interpreter durch das Eintippen von ruby auf der Kommandozeile starten lassen. Ruft man ruby ohne weitere Argumente auf, liest es von der Standardeingabe. Dann kann man beginnen, ein paar Anweisungen zu schreiben. Wenn man fertig ist, kann man den Interpreter mit Strg+d beenden und der eingegebene Code wird ausgeführt:

sms@a2600:~/rb> ruby
puts "Hello Ruby!"
Hello Ruby!

Da dies nicht unbedingt komfortabel ist, wollen wir nun eine Datei "hello.rb" anlegen und diese dann an den Interpreter übergeben:

#hello.rb
puts "Hello Ruby!"

Dieses Skript kann nun durch Eingabe von ruby hello.rb gestartet werden und liefert dann eine wenig überraschende Ausgabe.

Schließlich gibt es noch die Möglichkeit, wie es auch bei anderen Skriptsprachen der Fall ist, in die erste Zeile der Datei den aufzurufenden Interpreter zu schreiben. Wird die Datei dann ausführbar gemacht (chmod+x hello2.rb), kann die Datei einfach durch Eingabe des Dateinamens ausgeführt werden:

#!/usr/bin/ruby
#hello2.rb
puts "Hello Ruby!"

Interactive Ruby (irb)

Ein sehr nützliches Werkzeug stellt das interaktive Ruby (Aufruf mit irb auf der Kommandozeile) dar. Es handelt sich hierbei um eine Art Shell, in der man Ruby interaktiv "programmieren" kann. Es eignet sich hervorragend zum Testen kleinerer Codestücke.

Einige der in diesen Dokumenten verwendeten Beispielen wurden mit Hilfe des irb getestet bzw. erstellt. Zu erkennen sind sie an den zwei > - Zeichen. Diese zwei Zeichen werden als Prompt des irb ausgewählt, wenn man ihn mit der option --simple-prompt aufruft. Da jede Anweisung in Ruby ein Objekt zurückgibt und der irb diese Rückgabewerte jeweils anzeigt, werden sie mit => am Zeilenanfang gekennzeichnet und sind so von Ausgaben des irb auf die Standardausgabe zu unterscheiden:

>> x=3
=> 3
>> puts a
3
=> nil

Mit irb kann man verschiedene Teilsitzungen erstellen, die alle einen eigenen Kontext haben können. So können Teilsitzungen den gleichen Kontext wie die Ursprungs-Sitzung oder aber auch nur den Kontext einer bestimmten Klasse oder Instanz haben.