class Sitemap::SitemapCommand

Public Instance Methods

execute() click to toggle source
# File lib/sitemap/command.rb, line 43
def execute
  if !format.eql?('json') && output_file.nil?
    signal_usage_error "'output_file' parameter must be provided if format is not JSON."
    exit(0)
  end

  real_depth = depth
  if no_recursion?
    log.debug("Recursion disabled, setting depth to 1")
    real_depth = 1
  end

  log.info('Running sitemap generator')
  generator = SitemapGenerator.new()

  # Setup filters and transformers
  filters = Filters::Util.get_all_filters
  transformers = Transformers::Util.get_all_transformers

  # If query strings enabled, remove QueryString transformer
  if query_strings?
    transformers = transformers.select do |t|
      next true unless t.instance_of? Transformers::URIQueryStringTransformer
      false
    end
  end

  # If fragments enabled, remove URIFragmentFilter transformer
  if fragments?
    filters = filters.select do |t|
      next true unless t.instance_of? Filters::URIFragmentFilter
      false
    end
  end

  # Create the sitemap!
  generator.generate(uri, output_file, filters, transformers, format, real_depth)
end