def pretty_print
values = health_check.to_hash
output = StringIO.new
output.puts new_line "Domain", (values[:uri]).to_s
output.puts "-" * (PRETTY_LEFT_WIDTH + 1) + "|" + "-" * 50
output.puts new_line "DNS", "does not resolve" unless values[:dns_resolves?]
output.write new_line "State", (values[:valid?] ? "valid" : "invalid").to_s
output.puts " - is #{"NOT " unless values[:served_by_pages?]}served by Pages"
output.puts new_line "Reason", (values[:reason]).to_s unless values[:valid?]
if values[:pointed_to_github_user_domain?]
output.puts new_line nil, "pointed to user domain"
end
if values[:pointed_to_github_pages_ip?]
output.puts new_line nil, "pointed to pages IP"
end
record_type = if values[:a_record?]
"A"
elsif values[:cname_record?]
"CNAME"
else
"other"
end
output.write new_line "Record Type", record_type
should_be = values[:should_be_a_record?] ? "A record" : "CNAME"
output.puts ", should be #{should_be}"
ip_problems = []
ip_problems << "not apex domain" unless values[:apex_domain?]
ip_problems << "invalid domain" unless values[:valid_domain?]
ip_problems << "old ip address used" if values[:old_ip_address?]
ip_problems_string = !ip_problems.empty? ? ip_problems.join(", ") : "none"
output.puts new_line "IP Problems", ip_problems_string
if values[:proxied?]
proxy = values[:cloudflare_ip?] ? "CloudFlare" : "unknown"
output.puts new_line "Proxied", "yes, through #{proxy}"
end
output.puts new_line "Domain", "*.github.com/io domain" if values[:pages_domain?]
output.string
end