# File lib/rubygems/remote_fetcher.rb, line 48
  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} reading #{uri}"
  rescue
    old_uri = uri
    uri = uri.downcase
    retry if old_uri != uri
    raise
  end