silence_stream improvement ?

It seemed useful to be able to silence more than one stream at a time.

  # Silences any stream for the duration of the block.

Of course, it would help if I put 'yield' in the right place. Try again:

  def silence_stream(*streams)     streams = [STDOUT, STDERR] if streams.empty?     on_hold = streams.collect{ |stream| stream.dup }     streams.each do |stream|       stream.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null')       stream.sync = true     end     yield   ensure     streams.each_with_index do |stream, i|       stream.reopen(on_hold[i])     end   end

T.