# File lib/rubygems/remote_fetcher.rb, line 135
  def fetch_path(uri)
    open_uri_or_path(uri) do |input|
      input.read
    end
  rescue FetchError
    raise
  rescue Timeout::Error
    raise FetchError.new('timed out', uri)
  rescue IOError, SocketError, SystemCallError => e
    raise FetchError.new("#{e.class}: #{e}", uri)
  rescue => e
    raise FetchError.new("#{e.class}: #{e}", uri)
  end