だいです。
# あぁ展開が早い^^; 前のメール(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 とかかなぁ?