It doesn't contain the response when the domain is available because the Ruby library performs parsing at a different level. Also, keep in mind not all registries uses string messages to communicate the unavailability of a domain.

There are several well-known ways of locating whois servers for TLDs, the IANA database is probably the closest to what the question asks for, however there are other sources that may be more useful in practice.

From whois-servers.net (access via DNS)

The name tld.whois-servers.net is a CNAME to the appropriate whois-server. Somewhat unclear who actually maintains this but it seems pretty popular as it's very easy to use this with pretty much any whois client (and some clients default to using this service).

You shouldn't need a list of these. whois(1) is smart enough to figure this out for you:

For the man page:

By default whois constructs the name of a whois server to use
from the top-level domain (TLD) of the supplied (single) argu-
ment, and appending ".whois-servers.net". This effectively
allows a suitable whois server to be selected automatically for a
large number of TLDs.

Whois is generally pretty reliable. I don't ever recall seeing it fail for a domain.