From: GOTOU Yuuzou Date: 2002-02-07T20:39:30+09:00 Subject: [ruby-list:33781] Re: WebDAV client In message <20020207180548.1C1B.HIROSHISAITO@pob.org>, `Hiroshi Saito ' wrote: > HTTPのProxyの実装が特異メソッドになっているのと > class Options の定義は Net::HTTP にあって > class PropFind の定義は Net::WebDAV::HTTP にある違いで > 問題が発生しているような気がします。 > > どうすれば、この問題は回避できるのでしょうか? ProxyMod.create_proxy_class が HTTP を決めうちで継承して いるせいではないでしょうか。クラスを渡してやるようにした ら、WebDAV.rb も動きました。 # https を作る時に同じ問題で悩んだのですが、その時は継承 # しないようにしたので報告するのを忘れていました。 -- ごとうゆうぞう diff -u -r1.66 http.rb --- http.rb 30 Dec 2001 19:18:45 -0000 1.66 +++ http.rb 7 Feb 2002 11:27:23 -0000 @@ -509,7 +509,7 @@ def Proxy( p_addr, p_port = nil ) if p_addr then - ProxyMod.create_proxy_class( p_addr, p_port || self.port ) + ProxyMod.create_proxy_class( self, p_addr, p_port || self.port ) else self end @@ -563,9 +563,9 @@ module ProxyMod - def self.create_proxy_class( p_addr, p_port ) + def self.create_proxy_class( klass, p_addr, p_port ) mod = self - klass = Class.new( HTTP ) + klass = Class.new( klass ) klass.module_eval { include mod @is_proxy_class = true