だいです。 # あぁ展開が早い^^; 前のメール(foo/*)は off-topic なんでパスしますね。 Re the message of ``[ruby-ext:01610] Re: require 'dir/...'?''... matz / zetabits.com (Yukihiro Matsumoto): > まつもと ゆきひろです > > In message "[ruby-ext:01608] Re: require 'dir/...'?" > on 01/03/02, "Dai.K." <MAP2303 / mapletown.net> writes: > | そうです。 > | で、その「外に出す」ということが大きな違いなんですってば(^^; > > ええ。でも、その大きな違いは実は「気分」だとご自分でも認めて > いらっしゃったような。 心配は気分という言葉で括れるでしょうが、これは無視できない心配です。 故に気分にすぎないとは片づけられないわけです。 > cgi/session と cgi は狙ってああしているので別に構わないです。 > 「cgiに関する」という点で共通してるんでなんの問題もないと思っ > てます。 > > 私は「fooディレクトリが提供する機能(fooライブラリ)のエントリ > ポイントを用意するならfoo.rb」と言ってるだけで、逆(foo.rbは > fooディレクトリのエントリポイントでなければならない)ではない > ので。 え? これって相当分かりにくくないですか? コードを書いた以外の人が見たら、普通は逆(foo.rbはfooディレクトリのエントリ ポイント)を想像するかと。 > 名前空間の汚染という意味ではfooというディレクトリを使った時 > 点で、ライブラリ空間のfooという名前は予約されたと認識してま > す。fooとfoo.rbがまったく別の意味で使われると相当困るんで。 > > ですから、「foo.rbを使わない」というのはやはり気分あるいは自 > 己満足に過ぎないと思います。気分を否定するつもりはないですが、 > 気分の維持を積極的に支援するつもりもないです。 つまりその予約は cgi.rb と cgi/session のような場合まで妨げるものでは ないわけですよね。僕はそれも避けたいので、つまり a. を使う場合、 foo.rb は foo/ のエントリポイントですと説明したいわけで、ちょっときついですね。 > というか、「fooというライブラリの(一部でなく)全部」という意 > 図であればfoo/all.rbで良いと思うんです。でも、本当にしたいこ > とはそうではないんでしょう? えぇ、したいことは「全部」ではありません。 > fooという機能を提供したいのであれば、そのrequireする名前も > fooであるべきだし(つまり、*現状では*foo.rbを用意するしかない)、 > fooという分類のbarという機能を提供したいのであれば、foo/bar > であるべきでしょう。ここに迷いはないです。 foo/bar なら bar で決まりなんですが、デフォルトは悩みます。 というか foo/foo.rb である*べき*とまで言える理由がよく分からないです。 foo/ というディレクトリ名(すなわちライブラリ名)でもうすでに分かりますから、む しろ「デフォルト環境です」という意味の名前がふさわしいかと。 「foo ライブラリの foo 環境」というよりも「foo ライブラリのデフォルト環境」 と言った方が分かりやすいでしょう。 > | 僕は require.rb 使ってるわけですが、ちと不満なり。 > > 私には foo/require というfeature名を提供する意図がまったく理 > 解できません。これをrequireする人に提供したいものはなに? > fooという名前で表現されるものではないのでしょうか? > それにrequireという名前を付加するのは、蛇足か、自分の(実装の) > 都合をユーザに押しつけているように思います。 foo/require.rb の意図することは、foo のデフォルトとして require 'foo/require.rb' と require されるべきファイルであるということです。 実装の都合というのは、require の書かれているファイルという意味ですよね。 でなくて require の対象となるファイル。 分かりやすいと思ったんですが、まったく理解できないとなるとよくない名前だった みたいです。考えた末だったんだけどなぁ(^^; # required.rb ならいいかな? foo/foo.rb, /default.rb, /init.rb, /config.rb と色々変遷してきて、エントリポ イントとして意味が通り、一般的に使え、さらに普通のスクリプトファイル名には使い そうもない名前ということで require に落ちつきました。 見た目も韻(require/foo/require/rb)を踏んでいてそこそこ美しいですし。 require.rb は凝りすぎかもしれませんが、foo/foo.rb と foo/default.rb でも、 foo.rb の方にするべきとお考えということでしょうか? ここの名前決めは美しさと分かり易さが基準でしょう。 require 'foo/foo' or require 'foo/default' default のが分かりやすいし、後者は美しくないにせよ前者はちょっと醜い。 # standard.rb とかかなぁ?