Die Programmiersprache Ruby

Blog| Forum| Wiki  

IRB (oft auch kleingeschrieben irb) ist die interaktive Ruby-Umgebung, interactive Ruby. Sie erlaubt es, Ruby-Code auszuführen und das Ergebnis sofort zu betrachten. irb-Sitzungen lassen sich im Übrigen schlecht highlighten, weshalb wir in diesem Artikel auf Syntaxhighlighting verzichtet haben.

Inhaltsverzeichnis

Beispiel einer irb-Sitzung

Zunächst einmal muss die irb gestartet werden. Das ist im Grunde ganz einfach, weil irb bereits im Kompilierumfang von Ruby enthalten ist. Im Grunde deshalb, weil es mit älteren Versionen von irb, z.B. der von 1.8.6 auf Windows zu Problemen kommen kann[1]. Nutzer dieser Version auf Windows sollten zu fxri greifen, das entweder bereits im Installationsumfang von Ruby 1.8.6 enthalten ist oder ansonsten per RubyGems installiert werden kann. Andernfalls läuft die irb in der Konsole, dem Terminal, oder wie auch immer man das Ding mit Texteingabe nennen will. Ist Ruby ordentlich installiert, genügt es,
irb
einzutippen und die interaktive Sitzung wird gestartet.
1
2
$ irb
irb(main):001:0>

Die erste Zahl, 001 steht für die aktuelle Programmzeile und die zweite, 0, für den Verschachtelungslevel, der sich zum Beispiel durch def oder if erhöht. Zu allem Eingetippten wird sofort das Resultat als Ruby-Objekt angezeigt. So, als hätte man es sich in einem normalen Ruby-Programm mithilfe der Methode Kernel#p ausgeben lassen.

1
2
3
4
5
6
7
8
9
10
11
12
irb(main):001:0> RUBY_VERSION    
=> "1.9.1"
irb(main):002:0> x = "Ein String"
=> "Ein String"
irb(main):003:0> x = Array.new << 7 << "a"
=> [7, "a"]
irb(main):004:0> #Ein Kommentar
irb(main):005:0* if x.length > 1
irb(main):006:1> "L��nge von x gr����er 1"
irb(main):007:1> end
=> "L��nge von x gr����er 1"
irb(main):008:0>

Das Trennzeichen muss übrigens nicht unbedingt > sein. Am obigen Beispiel erkennt man nebenbei auch gut Rubys Eigenschaft, Bedingungen Werte zurückgeben zu lassen. Was passiert nun aber, wenn man invaliden Ruby-Code eingibt? Bricht die irb dann mit einem Fehler zusammen?

1
2
3
4
5
irb(main):008:0> x = + []
NoMethodError: undefined method `+@' for []:Array
        from (irb):8
        from /usr/local/bin/irb:12:in `<main>'
irb(main):009:0>

Nicht ganz. Es wird einfach der Fehler ausgegeben. Danach kann man ganz normal weitertippen.
Beendet werden kann die irb mithilfe der Ruby-Methode Kernel#exit.

irb(main):009:0> exit

Sinn

Die irb ist ein wunderbares Werkzeug, um Code zu testen und zu debuggen. Auch kann sie benutzt werden, um "mal eben schnell" eine Vermutung oder Annahme zu überprüfen. Außerdem wird oft in Forenbeiträgen auf sie verwiesen: "Hättest du deinen Code in der irb getestet, wäre dir der Fehler sofort am Rückgabewert aufgefallen!".

Fußnoten

  1. Insbesondere Zeichen, die mit der [ALT GR]-Taste eingegeben werden müssen, funktionieren nicht.

Siehe auch