class Sitemap::PingTask

Rake task for initiating search engine sitmap “ping”s

Attributes

deps[RW]
description[RW]
engines[RW]
name[RW]
sitemap_url[RW]

Public Class Methods

new(name = :ping) { |self| ... } click to toggle source
# File lib/sitemap/ping_task.rb, line 18
def initialize(name = :ping)
  @name = name
  @engines = [:google, :bing]
  @description = 'Inform search engines of updated sitemap contents'
  @deps = []
  @sitemap_url = try_jekyll_config
  yield self if block_given?
  define
end

Public Instance Methods

define() click to toggle source
# File lib/sitemap/ping_task.rb, line 35
def define
  namespace :sitemap do
    desc @description
    task @name => Array(@deps) do
      raise Sitemap::UrlError if @sitemap_url.nil?
      @engines.each do |e|
        Sitemap::Ping.ping_sitemap(e, @sitemap_url)
      end
    end
  end
end
try_jekyll_config() click to toggle source
# File lib/sitemap/ping_task.rb, line 28
def try_jekyll_config
  config = YAML.load_file('_config.yml')
  URI.join(config['url'], config['baseurl'], '/sitemap.xml').to_s
rescue SystemCallError
  nil
end