杉浦です。

>>> In Message "[ruby-ext:02232] Re: VFS for ruby"
>>>            <3F8BDF8E25.2324.BXQ04723 / nifty.ne.jp>,
>>> Nakamura Akifumi <BXQ04723 / nifty.ne.jp>  said;
> > ディレクトリは配列もしくはコレクションと同じように扱えると
> > 直感的で良さそうですよね。

> ファイルもディレクトリもURIも全部、
> なにか別のデータのコレクションなんですよね。
> 格納されているものや格納の形が結構ばらばらなだけで、
> コレクションだという意味ではみんな一緒。

URI はパス名と同じで、コレクションと言うよりポインタ(もしくは
そのままアイデンティファラ)な気がします。勿論それが指し示す先
はデータ(のコレクション)なのですけど。

"XXと呼ばれるもの(= XXと言う名前が指し示すもの)" と
"XXという名前そのもの" は別のオブジェクトとして捕らえた方が
私としては自然に感じるのですが、どうなのでしょう。

> 名前文字列などから、
> FileなりDirなりの「適切な」クラスのインスタンスを
> newしてくれる関数(メソッド)とかが有れば、
> まあ良いといえば良いんでしょうね。

> で、ファイル(?)名の意味をどう解釈するか
> (どのクラスにマップするか)が今後色々増え得るだろうから、
> 後から拡張可能なように
> 名前解釈屋(のクラス/オブジェクト)が有ればいい、のかな。

結局 VFS のやっているのはこれなのですが、何処で分けるかの違い
ですね。File と Dir だけは指定してもらって、あとはスキーム毎に
判断して適切なインスタンスを返す、と。

ただ、ファイルやディレクトリの概念に慣れ親しんだ人にはわかり
やすいと思うのですが、そもそもこのファイルの概念を取っ払った
方が良いのかも?

> 脱線ですが、ファイルの内容を読んだ時にも
> 「適切な」クラスのインスタンスがeachで返ってくる
> みたいなものが作れないかな。
> XMLだったら要素を解釈して返す(SAXってゆーんだっけ?)だろうし、
> StandardMidiFileだったらTrackを返しそうだ。
> ピクセル絵系のファイルの中身ならPixelかな?

面白そうですね。mime-type とかで判別するといいのかな。
ただ、帰ってきたインスタンスは統一されたインターフェースを持つ、
というのは難しそうですけど……

-- 
Tatsuki Sugiura   mailto:sugi / nemui.org