藤本です、こんにちは。

From: matz / netlab.co.jp (Yukihiro Matsumoto)
Subject: [ruby-list:7895] Re: filename (Re: libwww-ruby)
Date: Fri, 15 May 1998 12:44:01 +0900

> まつもと ゆきひろです
> 
> In message "[ruby-list:7894] filename (Re: libwww-ruby)"
>     on 98/05/15, TAKAHASHI Masayoshi <maki / inac.co.jp> writes:
> 
> |高橋です。
> 
> |根本的解決はファイル名クラスを作る、とかなのでしょうか?
> 
> いやあ,さすがにそれは避けたいでしょう.現状でもFileクラスに
> basename/dirnameなどのメソッドがありますから,その延長線上の
> パスを操作するメソッドの追加というのはありえるとは思いますが.

  この話に多分関連していて、提案というわけではないのですが考えていたこ
とがあります。

  今のFileクラスをFileIOというような名前にして、それとは別にIOの派生ク
ラスではない独立したFileというクラスがある、そんな構成になっているとい
いんじゃないかなぁと思うことがあります。
  
  RubyのFileクラスは「FileとのIO」をするクラスですよね。例えばFileクラ
スのインスタンスを作る時には必ずIOがopenされることからもそういえると思
います。
  一方で「Fileというオブジェクト」をIOと無関係に扱いたい状況も結構あり
そうです。例えば、unixのmvコマンドやcpコマンドは「Fileというオブジェク
ト」を入出力と無関係に扱うコマンドです。また、Macでは、既存のアプリケー
ションのドキュメントファイルを扱うときなどstream IO以外の方法でファイ
ルにアクセスすることも多いです。

  というわけで、うまく説明できませんが、FileとFileIOは別になっている方
がいいように思うときはあります。

  参考までにJavaでは
 
java.lang.Object -+- java.io.InputStream --- java.io.FileInputStream
                  +- java.io.InputStream --- java.io.FileInputStream
                  +- java.io.File

となっていて、java.io.File.pathSeparatorなんてものがあります。このよう
な構成の方がいいなぁと考えたりするわけです。

=============================================================
 藤本尚邦  FUJIMOTO Hisakuni                hisa / imasy.or.jp
=============================================================