あおきです。
返事が遅くなってすみません。

  In mail "[ruby-dev:19544] Re: FileUtils.pwd"
    nobu.nakada / nifty.ne.jp wrote:

> なかだです。

> cmp, copy_file, uptodate?あたりでファイル名以外(具体的にはIO,
> Timeとか)を受け付けるようにするってのは、FileUtilsの主旨からは
> 外れてるでしょうか。これがあるとmkmf.rbからfileutils.rbを使うの
> に都合がいいんですが。

整理すると提案は四つあるんですね。

  1. copy_file が IO を受け取る
  2. cmp が IO を受け取る
  3. uptodate? が Time#mtime, ctime のどちらを使うか可変にする
  4. uptodate? に比較基準となる Time を渡せるようにする

まず 1. の機能はよいと思います。しかし copy_file はあくまで
ファイルからファイルへのコピーにしたいので、あまりストリームを
認めたくありません。だから用意するなら copy_stream とかの名前
で別のメソッドにしましょう。んで、引数は全部ストリームで揃えて
もらいます。混在は不可。

2. は微妙。cmp(1) が stdin を読むので、受け付けてもいいかも
しれません。でもやっぱり別メソッドがいいような気もしますね。
とりあえず compare_stream は作ります。これの引数はストリーム
のみで混在は不可。cmp が受け付けるかどうかはちょっと考えてから。

あ、そもそも cmp は compare_file にすべきかもなあ。オプションが
ないやつは全部プリミティブ扱いに格下げ (格上げ?) すればスッキリ
しそうな予感がしてきました。

3. はオプションの名前と受け取りかたに疑問が残ります。たとえば
以前出てたハッシュ形式を使って :method => :mtime みたいにすべき
かもしれません。あるいは mtime と ctime だけでよいのなら、別メ
ソッドにすべきかも。というか、そもそも欲しくなった理由が知りたい
のですが……。

4. はなんか節操がない感じがします。
具体的な動機を聞いてからにしたいです。
-------------------------------------------------------------------
青木峰郎