From: Tomoyuki Kosimizu Date: 2000-07-13T06:47:50+09:00 Subject: [ruby-dev:10305] Re: uri 越水です。返事が遅れました。 ちょっと引用がゴッチャになりますが: > * freezeした文字列を多用しているがもしかするとシンボルを使 > うのが良い? freezeを多用するのは、私のクセみたいなものなのですが、それは別にしても、 今の実装でfreezeが問題になりそうなのは、URI::SCHEMEあたりの一連の定数 しかありません。 今の実装では、各コンポーネントをHashで管理していて、URI::SCHEMEなどを キーに値を引いています。このキーがいじられると値が引けなくなるので、 URI::SCHEMEのfreezeを外すことは危険です。また、ユーザにとっても、 URI::SCHEMEなどをいじる必要はまったくないはずですから、freezeしても問 題ないと思います。 > あるクラスでだけ定義されているメソッドがあるとkind_of?や > defined?の分岐を要求するのであんまり良くないんじゃないかなあ > と思ってるんです。全部、URIクラスで統合する方が良いのでは、 > と感じてます。 URI#[]がまだ残っているので、kind_of?を使わずに済ますことも可能です。 require 'uri' include URIModule url = URI.create('http://www.ruby-lang.org/') p url[URI::PASSWORD] # ==> nil > * URIModuleをインクルードする仕様は他とちょっと違う。できれ > ば避けたい。 これについては、私もどうにかしたいと思っているのですが、妙案が思い浮か ばないでいます。URIModuleという名前は、なひさんも書かれているように、 単に名前空間として利用しているだけです。 FTPURLなどをURIに統合すれば、URIModuleがいらなくなるわけですが、そこま でURIを太らせてよいか疑問です。genericなURIでないmailtoなどのschemeを 実装するときに障害になるのではないでしょうか。実装もしてないのにこんな ことをいうのもナニですが。 越水 greentea@fa2.so-net.ne.jp