Re: Wo finde ich RubyWin bzw. was sind die Alternativen?

Dirk Engel <[email protected]> Mon, 24 Mar 2003 15:51:09 +0100
Newsgroups gmane.comp.lang.ruby.german
Message-ID <[email protected]>
[email protected] wrote:
> Wo finde ich RubyWin bzw. was sind die Alternativen?
> 
> Ich habe nach der Empfehlung (für Anfänger) aus einem Buch *) das Ruby-Paket
> für MSWindows heruntergeladen und installiert. Allerdings nicht die
> Buchversion ruby166-0 sondern die aktuelle Version ruby168-8.
> 
> Laut Buch müßte es eine Testumgebung "RubyWin" geben, bei der man in einem
> Fenster das Skript editieren und dann über Menü:  Ruby/Eval Buffer ausführen
> kann. Dabei sieht man in einem zweiten Fenster die Ein- und Ausgabe.
> Dieses Programm ist nach der Installation nicht vorhanden, in den Release
> Notes aber beschrieben: "1.6.2-3: Included newer version of RubyWin"
> 
> Wo ist das Programm? 	(In der Buchversion ruby166-0 ist RubyWin enthalten)

In den aktuellen Versionen des Pakets ist RubyWin leider nicht mehr
enthalten. Ältere Versionen (auch die Version 166-0 aus dem Buch)
findest du unter:

http://dev.rubycentral.com/downloads/files/

> 
> Oder kann man nur mit dem Editor (SciTE) arbeiten, was mir auch lieber wäre.
> Funkioniert aber leider auch nicht!

Die Kombination SciTE/Ruby funktioniert leider nur eingeschränkt. Ruby
erwartet bei der Ausführung für die Standard-Eingabe eine "echte" Konsole,
so dass die Eingabe über SciTE nicht geht. Bei RubyWin wird das Problem
umgangen, weil dort der Ruby-Interpreter fest eingebaut ist. Das war auch
der Grund, warum wir uns in dem Buch für RubyWin entschieden hatten.

> Skript-Ausführung über SciTE-Menü: Tools/Go führt zu folgendem Fehler:
> 
> Bei der ersten Methode die das DOS-Eingabefenster erfordert, bricht das
> Programm ab. Das DOS-Fenster erscheint zwar ( gets.to_i ) aber das Ergebnis der
> vorherigen Methode print "...." wird nicht angezeigt und nach Eingabe eines
> Zeichens bricht das Programm mit nachfolgendem Fehler ab:
> 
> #Bereich2.rb
> .
> .
> 4  print "...."
> 5   zahl = gets.to_i
> 
> 					Bereich2.rb:5: [BUG] Segmentation fault
> 
> Was fehlt evtl. zur Initialisierung bzw. wie kriegt man den Editor zum
> Fliegen?

Es gibt ein Workaround für das Problem: Im SciTE-Verzeichnis
(je nach Installation z.B. C:\ruby\scite) liegt die Konfigurationsdatei
"ruby.properties". Sie bestimmt den Umgang von SciTE mit Ruby-Dateien,
also auch das Kommando Tools/Go (F5). Ich würde die zwei Zeilen nach
"if PLAT_WIN" ändern:

if PLAT_WIN
#	command.go.*.rb=ruby $(FileNameExt)
#	command.go.subsystem.*.rb=1
	command.go.*.rb=cmd /k ruby $(FileNameExt)
	command.go.subsystem.*.rb=2

Die ursprünglichen Zeilen sind auskommentiert. Die neuen Zeilen stehen
darunter.

Der Tipp wurde mal von dem Autor von SciTE in com.lang.ruby gegeben.
"cmd /k ruby" ruft eine separate Shell unter WindowsNT (2K/XP) auf, in
der das Ruby-Programm ausgeführt wird. Bei den alten DOS-basierten
Windows-Versionen (Win95, Win98, WinME) muss "cmd" durch "command"
ersetzt werden:

if PLAT_WIN
#       command.go.*.rb=ruby $(FileNameExt)
#       command.go.subsystem.*.rb=1
        command.go.*.rb=command /k ruby $(FileNameExt)
        command.go.subsystem.*.rb=2

Ich hoffe, das hilft etwas.

Gruß
Dirk Engel

-- 
Dirk Engel             http://www.theo1.physik.uni-stuttgart.de/~engel
Universität Stuttgart  Institut für Theoretische Physik 1