Howdy folks,

I'm working with MacRuby as it evolves and I've been enjoying it quite a lot. I'm trying to make use of the system in an unusual way and not having much luck. I thought I would post here and see if anyone has suggestions.

What I'm trying to do is use MacRuby as an embedded scripting language. Using the framework and the Objective-C interface this is REALLY straightforward and easy.

What I'd like to do, however, is divorce the MacRuby standard streams (stdout, stdio, stderr) so that I can control them myself. I was able to do this in a rather straightforward fashion from the Ruby side by, for example, reopening STDOUT on the write end of an NSPipe that I create myself.

The issue I've run into is that the NSPipe doesn't appear to grab the output from Ruby in the same way that original STDOUT does. I've been reading a lot and I gather that the difference may have something to do with having STDOUT attached to a "controlling terminal" vs. going to the pipe.

I've been swimming around in a world of pseudo terminals and pipes and lots of UNIX-ish stuff that, while it is teaching me a lot, is not getting me much closer to my goal.

So, my question is can anyone suggest the "best" way I might be able to hijack the standard streams that are being used by the Ruby runtime so that I can forward ruby output to my own code?

Scott

_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to