From: Minero Aoki Date: 2002-02-18T17:39:10+09:00 Subject: [ruby-dev:15937] Re: making net/*.rb grok URI あおきです。 In mail "[ruby-dev:15934] Re: making net/*.rb grok URI" "Akinori MUSHA" wrote: > > Net::HTTP.get .get_print は異論ないですが、.new .start .Proxy は > > 議論の余地があると思います。それは本当に絶対必要でしょうか。 > >  絶対かどうかは分かりませんが、例えば proxy は URI 形式で指定 > するのが一般的ですよね。URI.parse(ENV['HTTP_PROXY']) のような > ものをそのまま渡せたら便利だと思います。 uri.host_port みたいのを作ってもらうというのはダメですかね。 あるいは uri.select(:host,:port) とか。 >  http な ftp proxy というのも考えると、 proxy の情報としては > scheme (protocol), userinfo, host, port の四つの情報を渡す必要が > あるわけですが、 URI オブジェクトを持っているときにいちいち展開 > するのはなんとも冗長に思えてしまいます。 冗長というのは同意です。でも、ftp proxy あたりになってくると それが Net::HTTP という名前のクラスの役割かどうかがまず判然と しないと思います。それを HTTP で実装するというのなら URI を 受け付けるべきでしょうが、そうでないのなら迂闊に新しい引数を 受け付けないほうがよいでしょう。 >  これと関連して、 GET や HEAD をワンアクションでできるような > 高レベルインターフェースも欲しいですね。{HTTP,FTP}_PROXY や > HTTP_PROXY_AUTH 環境変数も自動的に拾ってくれるようなものがあると > うれしいです。(Perl の LWP みたく) > >  私は高レベルインターフェースも Net::HTTP に入れちゃっていいと > 思っていますが、青木さんやみなさんの御意見はどうでしょう? 個人的にはあんまり高レベルなのは入れたくないというか、むしろ 「入れられない」と思ってます。なんと言っても new の引数に ホストとポートを受けてる時点でもうなにか間違ってる気がします。 ここからさらにとってつけたようなサービスを提供するよりも、潔く もう一枚かぶせたほうがよい結果になるのではないでしょうか。 例えば、あんまりちゃんと見てないんですけど、高橋征義さんの webagent は HTTP_PROXY も見てるし get head post は一発でやって くれますし、クッキー対応もしてますよね。 ------------------------------------------------------------------- 青木峰郎