Logging stdout/stderr/stdin of an spawn process (Open4::spawn)

Hi dear rubyists,

I need to log all the input (typed by the user) and the stdout/stderr
of a process. The #script method below should behave pretty much like
the Unix script application. This way, my application can issue
several commands, show their output to the user an let them whatever
is needed.

def script cmd, log
# prepare $stdin to save its content into log
# prepare $stdout to save its content into log
# prepare $stderr to save its content into log
status = Open4::spawn cmd, ‘stdin’ => $stdin, ‘stdout’ =>
$stdout, ‘stderr’ => $stderr
end

I’ve seen some implementations of a #tee function or Tee class, but
they don’t seem to work with spawn. What would you suggest?

Thanks in advance,
Ed