> > I would probably just use:
> 
> [...]
> 
> >   istream.each { |line|
> >       ostream.write line
> >   }
> 
> Agreed.  Or a bit more efficient:
> 
> while buf = istream.read(4096)
>   ostream.write(buf)
> end

You're not thinking declaratively ;-) I want to say what I want it to do. Not how to do it.

ostream << istream

seems about right to me.

Thomas