class SitemapGenerator::SimpleNamer
A class for generating sitemap filenames.
The SimpleNamer
uses the same namer instance for the sitemap index and the sitemaps. If no index is needed, the first sitemap gets the first name. However, if an index is needed, the index gets the first name.
A typical sequence would looks like this:
* sitemap.xml.gz * sitemap1.xml.gz * sitemap2.xml.gz * sitemap3.xml.gz * ...
Arguments:
base - string or symbol that forms the base of the generated filename e.g. if `:geo`, files are generated like `geo.xml.gz`, `geo1.xml.gz`, `geo2.xml.gz` etc.
Options:
:extension - Default: '.xml.gz'. File extension to append. :start - Default: 1. Numerical index at which to start counting. :zero - Default: nil. A string or number that is appended to +base+ to create the first name in the sequence. So setting this to '_index' would produce 'sitemap_index.xml.gz' as the first name. Thereafter, the numerical index defined by +start+ is used, and subsequent names would be 'sitemap1.xml.gz', 'sitemap2.xml.gz', etc. In these examples the `base` string is assumed to be 'sitemap'.
Public Class Methods
new(base, options={})
click to toggle source
# File lib/sitemap_generator/simple_namer.rb, line 29 def initialize(base, options={}) @options = SitemapGenerator::Utilities.reverse_merge(options, :zero => nil, # identifies the marker for the start of the series :extension => '.xml.gz', :start => 1 ) @base = base reset end
Public Instance Methods
next()
click to toggle source
Return this instance set to the next name
# File lib/sitemap_generator/simple_namer.rb, line 55 def next if start? @count = @options[:start] else @count += 1 end self end
previous()
click to toggle source
Return this instance set to the previous name
# File lib/sitemap_generator/simple_namer.rb, line 65 def previous raise NameError, "Already at the start of the series" if start? if @count <= @options[:start] @count = @options[:zero] else @count -= 1 end self end
reset()
click to toggle source
Reset to the first name
# File lib/sitemap_generator/simple_namer.rb, line 45 def reset @count = @options[:zero] end
start?()
click to toggle source
True if on the first name
# File lib/sitemap_generator/simple_namer.rb, line 50 def start? @count == @options[:zero] end
to_s()
click to toggle source
# File lib/sitemap_generator/simple_namer.rb, line 39 def to_s extension = @options[:extension] "#{@base}#{@count}#{extension}" end