青木です。

  In mail "[ruby-dev:25369] FileUtils.copy_stream(ARGF, STDOUT)"
  Tanaka Akira <akr / m17n.org> wrote:

> ふと気がついたのですが、FileUtils.copy_stream は ARGF を受け付けないようです。

> ドキュメントには
> 
>   #
>   # Copies stream +src+ to +dest+.
>   # Both of +src+ and +dest+ must be a IO.
>   #
> 
> とあり、ARGF は IO ではないのでそれはそういうものなのかもしれませんが、
> 意外に思いました。
> 
> duck type な考え方でいえば、ARGF が sysread を持っていないのだからしか
> たがないという見方もあるのですが、read を持っていれば受け付けてくれて
> もいいんじゃないだろうかと感じたのですが、どうでしょう?

ARGF は受け付けられるべきだと思うので、考えかたを変更し、
src.read と dest.write があれば OK ということにしました。
なお src.read および dest.write は copy_stream 実行中には
例外を発生しないことを想定しています (書いてませんが)。
-------------------------------------------------------------------
青木峰郎