Class: Middleman::SitemapPing
- Inherits:
-
Extension
- Object
- Extension
- Middleman::SitemapPing
- Defined in:
- lib/middleman-sitemap-ping.rb,
lib/middleman-sitemap-ping/version.rb
Constant Summary collapse
- SERVICES =
{ google: 'http://www.google.com/webmasters/tools/ping?sitemap=%SITEMAP_URL%', bing: 'http://www.bing.com/ping?sitemap=%SITEMAP_URL%' }
- VERSION =
'0.2.0'
Instance Method Summary collapse
- #after_build(builder) ⇒ Object
- #do_ping(builder) ⇒ Object
-
#initialize(app, options_hash = {}) ⇒ SitemapPing
constructor
A new instance of SitemapPing.
Constructor Details
#initialize(app, options_hash = {}) ⇒ SitemapPing
Returns a new instance of SitemapPing.
17 18 19 20 21 |
# File 'lib/middleman-sitemap-ping.rb', line 17 def initialize(app, = {}) super require 'open-uri' end |
Instance Method Details
#after_build(builder) ⇒ Object
23 24 25 26 27 |
# File 'lib/middleman-sitemap-ping.rb', line 23 def after_build(builder) if .after_build self.do_ping builder end end |
#do_ping(builder) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/middleman-sitemap-ping.rb', line 29 def do_ping(builder) raise 'Please set the `host` option for the sitemap ping extension!' unless host = .host host = "http://#{host}" unless host =~ %r(\Ahttps?://) sitemap_url = File.join(host, .sitemap_file) SERVICES.each do |service, url| next unless .send("ping_#{service}") url.sub! /%SITEMAP_URL%\z/, CGI.escape(sitemap_url) builder.say "Pinging #{url}" open url do |f| if f.status[0] == '200' builder.say_status :success, 'SUCCESS!', :green else builder.say_status :error, "ERROR: #{f.status[0]}", :red end end end end |