lib/dynamic_sitemaps.rb in dynamic_sitemaps-1.0.8 vs lib/dynamic_sitemaps.rb in dynamic_sitemaps-2.0.0.beta
- old
+ new
@@ -1,4 +1,89 @@
-require 'dynamic_sitemaps/page'
-require 'dynamic_sitemaps/sitemap'
-require 'dynamic_sitemaps/url'
-require 'dynamic_sitemaps/engine'
+require "dynamic_sitemaps/rails/engine"
+require "dynamic_sitemaps/sitemap"
+require "dynamic_sitemaps/generator"
+require "dynamic_sitemaps/sitemap_generator"
+require "dynamic_sitemaps/index_generator"
+require "dynamic_sitemaps/sitemap_result"
+require "dynamic_sitemaps/pinger"
+
+module DynamicSitemaps
+ DEFAULT_PER_PAGE = 50000
+ DEFAULT_FOLDER = "sitemaps"
+ DEFAULT_INDEX_FILE_NAME = "sitemap.xml"
+ DEFAULT_ALWAYS_GENERATE_INDEX = false
+ SEARCH_ENGINE_PING_URLS = [
+ "http://www.google.com/webmasters/sitemaps/ping?sitemap=%s",
+ "http://www.bing.com/webmaster/ping.aspx?siteMap=%s"
+ ]
+
+ class << self
+ attr_writer :path, :folder, :index_file_name, :always_generate_index, :config_path, :search_engine_ping_urls
+
+ def generate_sitemap
+ DynamicSitemaps::Generator.generate
+ end
+
+ # Configure DynamicSitemaps.
+ # Defaults:
+ #
+ # DynamicSitemaps.configure do |config|
+ # config.path = Rails.root.join("public")
+ # config.folder = "sitemaps"
+ # config.index_file_name = "sitemap.xml"
+ # config.always_generate_index = false
+ # config.config_path = Rails.root.join("config", "sitemap.rb")
+ # end
+ #
+ # To ping search engines after generating the sitemap:
+ #
+ # DynamicSitemaps.configure do |config|
+ # config.search_engine_ping_urls << "http://customsearchengine.com/ping?url=%s" # Default is Google and Bing
+ # config.sitemap_ping_urls = ["http://www.domain.com/sitemap.xml"]
+ # # or dynamically:
+ # config.sitemap_ping_urls = -> { Site.all.map { |site| "http://#{site.domain}/sitemap.xml" } }
+ # end
+ def configure
+ yield self
+ end
+
+ def folder
+ @folder ||= DEFAULT_FOLDER
+ end
+
+ def path
+ @path ||= Rails.root.join("public")
+ end
+
+ def index_file_name
+ @index_file_name ||= DEFAULT_INDEX_FILE_NAME
+ end
+
+ def always_generate_index
+ return @always_generate_index if instance_variable_defined?(:@always_generate_index)
+ @always_generate_index = DEFAULT_ALWAYS_GENERATE_INDEX
+ end
+
+ def config_path
+ @config_path ||= Rails.root.join("config", "sitemap.rb")
+ end
+
+ def search_engine_ping_urls
+ @search_engine_ping_urls ||= SEARCH_ENGINE_PING_URLS
+ end
+
+ def sitemap_ping_urls
+ case @sitemap_ping_urls
+ when Array then @sitemap_ping_urls
+ when Proc then @sitemap_ping_urls.call
+ else []
+ end
+ end
+
+ def sitemap_ping_urls=(array_or_proc)
+ unless array_or_proc.is_a?(Array) || array_or_proc.is_a?(Proc)
+ raise "Unknown type #{array_or_proc.class.name} for sitemap_ping_urls."
+ end
+ @sitemap_ping_urls = array_or_proc
+ end
+ end
+end
\ No newline at end of file