『だらだら日記−−』の読者,まつもと ゆきひろです

In message "[ruby-list:2439] url escape"
    on 97/03/27, GOTO Kentaro <gotoken / math.hokudai.ac.jp> writes:
|
|どシロウトの後藤です. 
|
|python のWWWライブラリを ruby にチマチマ移そうとしてます. 
|とりあえず練習に URL のエスケープ関数を書いてみたので, 
|誰か添削してもらえませんか? 40行ほどなので添付しました. 

python風ですね.cgi-lib.rbがperl風なのと対照的です.

あえていえばquoteのsafeのあたりとかで正規表現を使ったり,
sprintfの代わりにpackを使ったりするのがruby風なんでしょうか.

それとquoteする文字列が短い場合には,一度配列に放り込んで
joinするより文字列に追加して行く方が速いかも.

あと unquote はgsubをイテレータとして使った方が良いかも.

|それと質問なのですが近い将来この urllib.rb に
|  p = URL.open("http://www.caelum.co.jp/~matz/ruby/)
|  page = p.readlines()
|  p.close()
|のようなのも付け加えたいのですが, その場合, 
|この場合 URL は module でなくて class にすべきなのでしょうか?
|URL.quote しか使わないかも知れないのにクラスが初期化されるのは
|モッタイナイので module にしようかと思っているのです. 
|が, それは勘違いのような気がしてるので. 

クラスの初期化とモジュールの初期化ではコストは変わりませんか
ら,そういう心配は要りません.URLがオブジェクトになるか単な
る機能の集まりであるかで,判断してください.

                                まつもと ゆきひろ /:|)