Forum: Ruby Net::HTTP, inheritance + proxy problem

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Rikard L. (Guest)
on 2007-08-01 16:29
(Received via mailing list)
Hi all,

I am trying to create a child class from Net::HTTP and the following
seems to work:
class Connection < Net::HTTP
  def initialize(addr, port)
      super(addr, port)
  end
end
I can now write: conn = Connection.new(addr, port)
instead of: conn = Net::HTTP.new(addr, port)

But what I really would like is to be able to use the Proxy method of
Net::HTTP in initialize.
So that i could use: conn = Connection.new(addr, port, paddr, pport)
instead of: conn = Net::HTTP::Proxy(paddr, pprort).new(addr, port)

But I have as of yet no idea how to incorporate the proxy in the
Connection class.
I have tried many, many different approaches but none works.

Something like the following would be what I am after, but it does not
work (of course)
class Connection < Net::HTTP
  def initialize(addr, port, paddr=nil, pport=nil)
      Proxy(paddr, pport).super(addr, port)
  end

end

This must be a very common question but I have not been able to find a
simple answer .
Please help

Best regards
/Rikard
Jano S. (Guest)
on 2007-08-02 02:13
(Received via mailing list)
On 8/1/07, Rikard L. <removed_email_address@domain.invalid> wrote:
> instead of: conn = Net::HTTP.new(addr, port)
> Something like the following would be what I am after, but it does not
> work (of course)
> class Connection < Net::HTTP
>   def initialize(addr, port, paddr=nil, pport=nil)
>       Proxy(paddr, pport).super(addr, port)
>   end
>
> end

What about either:

class Connection < Net::Http
   def self.create(addr, port, paddr, pport)
       Proxy(paddr, pport).new(addr, port)
  end
end

or

class Connection
  def self.create(..)
     Net::Http.Proxy(...).new(...)
  end
end

use:

Connection.create(...)

(not tested though)
This topic is locked and can not be replied to.