# File lib/openid/trustroot.rb, line 63
    def sane?
      return true if @host == 'localhost'
      
      host_parts = @host.split('.')
      # a note: ruby string split does not put an empty string
      # at the end of the list if the split element is last.  for example,
      # 'foo.com.'.split('.') => ['foo','com'].  Mentioned because the python
      # code differs here.
      
      return false if host_parts.length == 0

      # no adjacent dots
      return false if host_parts.member?('')

      # last part must be a tld
      tld = host_parts[-1]
      return false unless TOP_LEVEL_DOMAINS.member?(tld)

      return false if host_parts.length == 1

      if @wildcard
        if tld.length == 2 and host_parts[-2].length <= 3
          # It's a 2-letter tld with a short second to last segment
          # so there needs to be more than two segments specified 
          # (e.g. *.co.uk is insane)
          return host_parts.length > 2
        end
      end

      return true
    end