|
Du bist hier:
Hinterkattentuffel -
Ruby -
Dir in irb ausprobieren Prev: Ruby im Konsolenfenster |
|
Im interaktiven Ruby Interpreter kann man Ruby eintippen und direkt ausführen. Man kann z. B. einfach Dir["*"].entries eintippen und erhält ein Verzeichnislisting. So lassen sich recht einfach erste Gehversuche in Ruby starten. Die irb kann aber auch als Taschenrechner oder Kalender herhalten. Sollten sich in irb nicht alle Zeichen eingeben lassen, ist vielleicht die Option --readline aktiv. Ich starte irb dann einfach ohne diese Option: irb --noreadline. Eine weitere Alternative ist das Programm fxri. Es wird mittlerweile vom Ruby-Installer mit bereitgestellt und vereint die Programme irb und ri in einer mit FXRuby erstellten Benutzeroberfläche. Da irb auch mehrzeilige Eingaben verarbeitet, liefern Fehleingaben nicht notwendigerweise sofort eine Fehlermeldung. Man tut gut daran, das irb-Prompt im Auge zu behalten. Ein Strg-C bringt ggf. das Standardprompt zurück. Im Hinblick auf unseren Playlist-Generator interessiert mich, wie Ruby Pfade verwaltet und lasse irb im Ordner "Eigene Dateien" das Kommando Dir.getwd ausführen. Das Ergebnis wird evtl. überraschen. Wurde irb wie beschrieben per Kontextmenü aus dem Explorer geöffnet, so erhalte ich bei älteren Versionen:
IRB>Dir.getwd Sollte das Ergebnis anders aussehen, ist das ein gutes Zeichen: Offenbar ist eine halbwegs aktuelle Ruby-Version installiert. Ältere Ruby-Versionen für Windows wurden mit Hilfe der Unix-Umgebung Cygwin unter Windows compiliert und verwendeten für Pfade die durch die Cygwin-Dll vorgegebene Unix-Notation. Bei aktuellen Ruby-Installationen scheint das nicht mehr so zu sein, und zwar unabhängig davon, wie sie übersetzt wurden. Ich erhalte:
IRB>Dir.getwd Man beachte, dass die Ausgabe keine Backslashes \ sondern Slashes / enthält. Der in Ruby verwendete Separator ist in Ruby als Konstante der Klasse File verfügbar. Über die Funktion gsub können die Slashes einer Pfadbezeichnung in den gewünschten Separator umgewandelt werden. Ein Verzeichnislisting von C:\* geht dann so: IRB>Dir['C:/*'].each { |filename| puts filename.gsub(File.const_get('SEPARATOR'), "\\") } Auch den umgekehrten Fall braucht man gelegentlich, etwa wenn man Pfade aus Umgebungsvariablen in Ruby-Pfade umrechnen möchte:
IRB>ENV['USERPROFILE'].gsub(/\\/, File.const_get('SEPARATOR')) Die Klasse Dir kennt auch gemappte Laufwerke. Auf Laufwerk D: kann man z. B. wie folgt zugreifen:
IRB>Dir["D:/*"].entries Ok, D: ist bei mir grade leer, aber grundsätzlich geht das, hab's ausprobiert ;-) |
| Next: Entwicklungsumgebung |