だいです Re the message of ``[ruby-ext:01604] Re: require 'dir/...'?''... matz / zetabits.com (Yukihiro Matsumoto): > まつもと ゆきひろです > > In message "[ruby-ext:01597] Re: require 'dir/...'?" > on 01/03/02, "Dai.K." <MAP2303 / mapletown.net> writes: > > | facade に疑問ですが、facade はひとつだけなんですか? > | RubyUnit がそんな感じですが、ある時は cui ある時は TestSuite ある時は…なん > |て場合は foo.rb だと困りません? (b案支持理由追加ですね;-) > > そういう時にまで foo.rb をする必要はないでしょう。 > foo.rbという名前が有意義なときにはそうすれば良いだけで、そう > でないときにまで無理して > > | foo/init_suite.rb > | foo/init_cui.rb > | foo/init_all.rb > | > | とできた方がよいでしょう。必要に応じてどれかひとつあるいは複数を require し > |てもらう。 > > としない理由はないと思います。(というか、もともとこの話は、 > 「まとめることが有意義な場合」に限定してると思ってたのですが)。 RubyUnit はそれぞれ単独で使うから例としてはよくなかったかも。 init_suite, init_cui, init_all はそれぞれ「まとめることが有意義な場合」という 仮定です。ひとつのライブラリセットから、いくつかの選択的なファイル群をロードし たい場合はありえますよね。排他でもいいけれど。 えぇと既に rinn は rinn.rb と corba.rb という二通りのものがありますし、もっと 増える予定です(require でなくてさっき思いついた Builder にするかも)。 最初 rinn.rb を提供し、後に corba.rb も提供しようとした場合。a方式だと。 rinnのみ: require 'rinn' corba提供後: 環境の数で require の書式が異なるか、 require 'rinn/rinn' と require 'rinn/corba' ひとつの時と書式は維持 require 'rinn' と require 'rinn/corba' ですよね。前者は提供環境の数で読み出し方が異るのはユーザビリティが低くなる し、後者はちょっときたない(少なくとも提供をためらう程度には)。 corba.rb を上のレベルに持ってくると衝突があるし。といってそのためにライブラリ を分離して corba/ で提供しなさいというのも乱暴で。 b方式だったら最初から、 rinnのみ: require 'rinn/rinn' なので問題なし。 というあたりが、b案支持の理由です。 > |(b案支持理由追加ですね;-) > > と勝ち誇られちゃうと当惑しちゃいます。;-) 別に勝ち誇ってるわけじゃ(^^; 新たな支持理由なんできちんと明記しといた方がよいかなと。「;-)」 は照れ。 > |この場合、最も基本的なものを外に出すのはちと対称性に欠けるきらいがあ > |るので、それよりそのファイル名を foo/__init__.rb にした方がいいでしょう。 > > とはいえ、「外に出す」のと「foo/__init__.rb」にするってのは > たいして変わらないような。特別扱いしてるのはおんなじで、ディ > レクトリの外に出るかどうかだけの違いですよね。 そうです。 で、その「外に出す」ということが大きな違いなんですってば(^^; > あ、そうそう。require 'foo' でfoo/__init__.rb をロードするの > は > > In message "[ruby-ext:01601] Re: require 'dir/...'?" > on 01/03/02, Yukihiro Matsumoto <matz / zetabits.com> writes: > > | * 「foo.rbとfoo/の両立がイヤ」という気分を満足させるための > | 改造には納得できない > > は当てはまるんですが、残りの二つはないので、まだ妥協できます。 ls がきたないというのは確かに気分にすぎないですけれど、衝突の心配は気分の 満足とは違うような。衝突なんてしないと皆言いますが、cgi/session.rb と cgi.rb は? グローバルな名前空間はできるだけ汚染したくないのです。 ちなみに require 'foo' で foo/__init__.rb を読むようにとの改造はそれほど必 要とは思っていません。あればあったでいいけれど、まずは一般的な名前が普及して からがいいかな。 議論がずれちゃってますが、複数環境の理由が分かった以上、サブディレクトリ掘る まで成長したライブラリに対しては a案は避けたくなってきました。 ゆえに __init__.rb のよい名前が一番欲しい。 僕は require.rb 使ってるわけですが、ちと不満なり。 __init.rb__ は `_' がうるさいかなぁ。 all.rb は全部読むのが標準とは限らないのでパス。 ディレクトリ名と一緒? うーん。。。