Class: URI::HTTP

Inherits:
Object show all
Defined in:
lib/uri/http_ex.rb

Instance Method Summary collapse

Instance Method Details

#checkoutObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/uri/http_ex.rb', line 16

def checkout
  tmp = TempPath.new('checkout', pathname.basename.to_s)

  begin
    uri = URI.parse(ENV['http_proxy'] || '')
    proxy_auth = [uri.host, uri.port, uri.user, uri.password]

    Net::HTTP::Proxy(*proxy_auth).start(host) do |http|
      tmp.open('w') do |out|
        http.get(path) do |str|
          out.print str
        end
      end
    end

  rescue Exception => ex
    tmp.unlink if tmp.exist?
    raise CheckoutError, "Cannot checkout #{to_s} (error: #{ex.short_pp})"
  end

  [tmp, nil]
end