# File lib/rubygems/remote_fetcher.rb, line 64
  def fetch_size(uri)
    return File.size(get_file_uri_path(uri)) if file_uri?(uri)
    require 'net/http'
    require 'uri'
    u = URI.parse(uri)
    raise ArgumentError, 'uri is not an HTTP URI' unless URI::HTTP === u
    http = connect_to(u.host, u.port)
    resp = http.head(u.request_uri)
    raise Gem::RemoteSourceException, "HTTP Response #{resp.code}" if resp.code !~ /^2/
    resp['content-length'].to_i
  rescue SocketError, SystemCallError, Timeout::Error => e
    raise FetchError, "#{e.message}(#{e.class})"
  end