# File lib/rubygems/remote_fetcher.rb, line 42
  def fetch_path(uri)
    open_uri_or_path(uri) do |input|
      input.read
    end
  rescue Timeout::Error
    raise FetchError, "timed out fetching #{uri}"
  rescue IOError, SocketError, SystemCallError => e
    raise FetchError, "#{e.class}: #{e} reading #{uri}"
  rescue OpenURI::HTTPError => e
    body = e.io.readlines.join "\n\t"
    message = "#{e.class}: #{e} reading #{uri}\n\t#{body}"
    raise FetchError, message
  end