2006/5/17, Damphyr <damphyr / freemail.gr>: > I have code that prints to stdout (using puts and/or print). > I'm loading the code from a file (pretty much the way rake handles > rakefiles) and would like to capture the output from the loaded code. > I don't want to redirect stdout into a file or anywhere else, I > need the > output in a string. > > ---file1.rb > puts "Output of meaningful code omitted" > ---loader.rb > > begin > ###do some magic to get the stdout from this point on into a string > load file1.rb > ###do some more magic to put stdout back where it was. > end > > Has anyone a solution for this? require 'stringio' stdout = StringIO.new $stdout = stdout load "file1.rb" $stdout = STDOUT stdout.rewind puts "got: #{stdout.read}" # => got: Output of meaningful code omitted -- Daniel