高橋征義です。[ruby-list:23063] の続きです。

matz / netlab.co.jp (Yukihiro Matsumoto)さん:
> ファイル操作関係が統合されるのは望ましいと思うので、加えるこ
> とには賛成です。ただ、統合されず似たような機能が標準添付内で
> 乱立するのは避けたいです。すでにマズい例がありますし、これ以
> 上増えるのは避けたい。

……確かに。

> それぞれニーズの違いがありそうなので、それが統合できるかどう
> かまず話合いが必要ではないでしょうか?

そうですね。
ということで、まずは現状をまとめてみます。

現状でのftools.rbの機能は以下の通りです(「/」はalias)。

 * メソッドの追加

   * File::copy/cp
   * File::move/mv
   * File::compare/cmp
   * File::safe_unlink/rm_f
   * File::makedirs/mkpath
   * File::install

 * メソッドの変更

   * File::chmod
     (verboseにしただけ)

# syscopyをそのまま使いたい、ということはあるんでしょうか?

これらのメソッドとほぼ等価な機能を持つものは、futils.rb(FileUtils)
にもfileutils.rb(FileUtilities)にも含まれています。そして、それ以外の
メソッドも両モジュールにはたくさんあります。

# ちなみに、FileUtilsとFileUtilitiesとでは、片方にしかない
# メソッドがありますね。

また、verboseにするかしないかの変更について、fileutils.rb
ではモジュール全体で一つのインスタンス変数を共有することに
よって、全体が一気に変わりますが、ftools.rbの場合は個々の
メソッド単位で指定します。

というわけで、考えなくてはならない点としては、

 1. ファイルを操作する機能はモジュールの方がいいのか、それとも
    Fileクラスのクラスメソッドの方がいいのか?
 2. verboseの指定はメソッド単位がいいのか、モジュール/クラス
    単位がいいのか?
 3. verboseを絶対指定しないために、モジュールなりクラスなりを
    分ける必要はあるのか?
   
というところでしょうか。

私は、

1. まあどっちでも(^^;
2. 少なくともモジュール・クラス単位で指定できた方がいいことは
   いいです。
3. あんまり感じませんが、どうなんでしょう。
   (速度の面でのメリットを求めるひとはいそうな気がする)

というところです。

高橋征義 (TAKAHASHI Masayoshi)       Email:maki / inac.co.jp