12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/site_maps/ping.rb', line 12
def ping(sitemap_url, engines: nil)
engines ||= ENGINES
encoded_url = ERB::Util.url_encode(sitemap_url)
engines.each_with_object({}) do |(name, url_template), results|
ping_url = url_template % {url: encoded_url}
uri = URI.parse(ping_url)
response = Net::HTTP.get_response(uri)
results[name] = {status: response.code.to_i, url: ping_url}
SiteMaps.logger.info("[SiteMaps] Pinged #{name}: #{response.code} - #{ping_url}")
rescue => e
results[name] = {status: nil, error: e.message, url: ping_url}
SiteMaps.logger.warn("[SiteMaps] Failed to ping #{name}: #{e.message}")
end
end
|