code: def parse_url_with_auth!(url)
        uri = URI.parse(url)
  
        if uri.hostname.nil?
          raise URI::InvalidURIError.new("bad URI(no host provided): #{url}")
        end
  
        @user = CGI.unescape(uri.user) if uri.user
        @password = CGI.unescape(uri.password) if uri.password
        if !@user && !@password
          @user, @password = Netrc.read[uri.hostname]
        end
  
        @uri = uri
      end
docs: Parse the `@url` string into a URI object and save it as
   `@uri`. Also save any basic auth user or password as @user and @password.
   If no auth info was passed, check for credentials in a Netrc file.
  
   @param [String] url A URL string.
  
   @return [URI]
  
   @raise URI::InvalidURIError on invalid URIs