藤本です、こんにちは。 From: Wakou Aoyama <wakou / fsinet.or.jp> Subject: [ruby-list:8018] Re: libwww-ruby Date: Wed, 20 May 1998 09:03:52 +0900 > 青山です。 > > やはり見やすい文字列としての相互変換は難しいでしょうね。とりあえず現状 > では require "a/b" が使われるようになると Mac 側ではその扱いが難しいと > 思われます。require "a" + File::Separator + "b" とでも書くようにしない > と... 手間(実装の都合)と互換性を秤にかけて、以下のようにするのでどうでしょ うか。 基本的には、UNIX形式パス表現への変換は行わない(手間がかからない) 例外としてrequireの引数に、$LOAD_PATHで検索するディレクトリに置い ているライブラリ、拡張モジュールを指定する場合には、UNIX形式パス表 現を使う(互換性) $LOAD_PATHで検索するディレクトリ以下のファイル、フォルダ名には"/" を使ってはいけないことをユーザに強制する(手間がかからない) requireの引数中に":"が1文字でも見つかった場合、Mac形式として解釈 (利便性) これはつまり、requireだけを特別扱いにして、その他はおおむね現状のま まということになります。これなら、requireの引数をチェックするコードを 入れる以外、ほとんどいじらずに実現できるはずです。 スクリプトのrequire以外の箇所で、パス名表現とOS間(Macとそれ以外)のポー タビリティの両方が必要なケースというのは、わりと少ないように思うので、 当面はこれでどうでしょうか? require以外で、ポータビリティが必要な場合には、File::Separatorを使っ て書くことを推奨するということになります。そういうときには直接文字列で 表現せずに、スクリプトを書く人がFileSpecifier的なクラスなどを作ってそ れで扱えば、File::Separatorを使う場所を1、2箇所に集約することは可能 だと思います。 ============================================================= 藤本尚邦 FUJIMOTO Hisakuni hisa / imasy.or.jp =============================================================