Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 02 Apr 2012, 10:48 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4847
Wohnort: RLP
So, jetzt stell ich auch mal eine Frage:

Ruby 1.9 hat ja diese praktische Funktion "Kernel.spawn":




 self.pid = Kernel.spawn("my_command", :out => :out, :err => :err)


(Starte einen Prozess und schleife dessen stdout/err an den stdout/err des parents).

Unpraktisch an der Sache: das geht nicht unter Ruby < 1.9. Nun gibts eine Menge polyfills dafür, aber die laufen entweder nicht unter JRuby, Windows oder einer anderen bunten Menge an Sachen. Spawn macht noch ne ganze Menge Sachen mehr, die ich aber nicht brauche.

Wie kann ich dieses eine Verhalten so emulieren, dass es auf allen Ruby-Platformen läuft, ohne den Umweg zu gehen, den $stdout des childs selbst zu konsumieren und in meinen zu schreiben?

Edit: ich stelle gerade fest... eigentlich ist das ja ne Ruby-1.8-Frage, oder? :)

Gruß,
Skade


Nach oben
 Profil  
 
BeitragVerfasst: 02 Apr 2012, 13:32 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1412
Wohnort: NRW → UN
Zu 1.8er-Zeiten habe ich mir immer mit so einem Konstrukt beholfen:



Thread.new{system("kommado_hier")}

Das enthält aber die Redirects noch nicht... Unter 1.8 versteht #system aber leider noch nicht den Optionshash. Du könntest es mit einem IO#popen/Open3.popen3 in einem separaten Thread lösen, aber dann hast du wieder den Fall, das du den Output händisch durchreichen musst.

Vale,
Quintus

PS: Nein, das Ruby-Codehighlighting funktioniert momentan nicht!

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Mein Blog | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: BF3A 614B D62B A4A0 C292 141C B875 5CB1 C592 A85A

Helft beim OpenRubyRMK, einem freien Programm zum erstellen von RPGs! (→ GitHub-Projekt)


Nach oben
 Profil  
 
BeitragVerfasst: 02 Apr 2012, 14:28 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4847
Wohnort: RLP
Meh, von dem bin ich gerade wegmigriert :). Eventuell werd ich das Feature für Plattformen ohne spawn dann einfach streichen.

Gruß,
Skade


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: