> ###do some magic to get the stdout from this point on into a string


All you have to do is assign a different IO Object to the global
$stdout variables and Kernel.puts  will write to that IO object.

The `real` standard out of the process will be available in the STDOUT
constant, in case you need definate access to it, though you'd
probably want to save a copy of the original value of $stdout, you
never know...

  old_stdout=$stdout
  $stdout=File.new(...)
  #
  # Do a bunch of stuff that shouldn't log to the console
  #
  $stdout=old_stdout # everything back to normal...

same applies to $stderr STDERR

   -tim