Hello,
I am experimenting with script IO in preparation for hosting an IRB session via an embedded SSH server and/or embedded HTTP server, but I'm having trouble getting the script environment to use a custom stream for standard input. I used the following code for setting up my IronRuby environment: public Form1() { InitializeComponent(); _stdIn = new MemoryStream(); _inputWriter = new StreamWriter(_stdIn); txtStandardIn.KeyPress+=(s,e)=> { _inputWriter.Write(e.KeyChar); _inputWriter.Flush(); Debug.Write(e.KeyChar); }; _stdOut = new FifoStream(); _outputReader = new StreamReader(_stdOut); _stdOut.DataArrived += StdOutDataArrived; _scriptEngine = Ruby.CreateEngine(); _globalScope = _scriptEngine.CreateScope(); _scriptEngine.Runtime.IO.SetInput(_stdIn, Encoding.Default); _scriptEngine.Runtime.IO.SetOutput(_stdOut, Encoding.Default); } If I write "hello" + Environment.NewLine to the input stream and flush the writer and then use the ScriptEngine e to execute a "x = gets" - x is always nil. However, if I use the script engine to execute "puts 'hello'" my custom output stream is used and I see my output. I feel like I am missing a key ingredient in my setup process - any help would be appreciated. Thanks, Nathan
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core