From: Chris Pine Date: 2002-12-07T10:11:51+09:00 Subject: StringIO (was: Namespaces (was: protected program in a program)) Check this out! def executeCode (code, input) # I'm just ignoring input for now. code = "begin\n" + code + "\nrescue Exception => error\n" + "puts error.inspect\n" + "end\n" strIO = StringIO.new strIO.instance_eval code strIO.string end I don't fully understand this code... The StringIO parts. Half of it is from the ML, and half is me trying to figure out what StringIO is (god bless irb!!!). Well, it works great. No namespace issues, no redirecting, and it even catches errors! So, now I just need some way to feed input into StringIO, I guess... so that if did this: code = <<-END_CODE str1 = gets str2 = gets puts str1 puts str2 END_CODE input = "hello\n" + "hi\n" output = executeCode (code, input) ...I'd get back "hello\nhi\n". Any ideas? Chris