Class: DynamicSitemaps::Pinger

Inherits:
Object
  • Object
show all
Defined in:
lib/dynamic_sitemaps/pinger.rb

Class Method Summary collapse

Class Method Details

.ping(url) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/dynamic_sitemaps/pinger.rb', line 26

def ping(url)
  Logger.info "Pinging #{url} ..."
  begin
    Net::HTTP.get(URI.parse(url))
  rescue Exception => e
    Logger.warn "Failed to ping #{url} : #{e}"
  end
end

.ping_for_environment?(env) ⇒ Boolean

Returns:



35
36
37
# File 'lib/dynamic_sitemaps/pinger.rb', line 35

def ping_for_environment?(env)
  DynamicSitemaps.ping_environments.map(&:to_s).include?(env.to_s)
end

.ping_search_engines_with(sitemap_urls) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/dynamic_sitemaps/pinger.rb', line 4

def ping_search_engines_with(sitemap_urls)
  sitemap_urls = [sitemap_urls] unless sitemap_urls.is_a?(Array)

  if sitemap_urls.any? && ping_for_environment?(Rails.env)
    Logger.info "Pinging search engines..."

    sitemap_urls.each do |url|
      ping_search_engines_with_sitemap_url url
    end

    Logger.info "Done pinging search engines."
  end
end

.ping_search_engines_with_sitemap_url(sitemap_url) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/dynamic_sitemaps/pinger.rb', line 18

def ping_search_engines_with_sitemap_url(sitemap_url)
  sitemap_url = CGI::escape(sitemap_url)
  DynamicSitemaps.search_engine_ping_urls.each do |ping_url|
    url = ping_url % sitemap_url
    ping url
  end
end