Class: SitemapGenerator::SimpleNamer
- Inherits:
-
Object
- Object
- SitemapGenerator::SimpleNamer
- Defined in:
- lib/sitemap_generator/simple_namer.rb
Overview
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'.
Instance Method Summary collapse
-
#initialize(base, options = {}) ⇒ SimpleNamer
constructor
A new instance of SimpleNamer.
-
#next ⇒ Object
Return this instance set to the next name.
-
#previous ⇒ Object
Return this instance set to the previous name.
-
#reset ⇒ Object
Reset to the first name.
-
#start? ⇒ Boolean
True if on the first name.
- #to_s ⇒ Object
Constructor Details
#initialize(base, options = {}) ⇒ SimpleNamer
Returns a new instance of SimpleNamer.
31 32 33 34 35 36 37 38 39 |
# File 'lib/sitemap_generator/simple_namer.rb', line 31 def initialize(base, ={}) @options = SitemapGenerator::Utilities.reverse_merge(, :zero => nil, # identifies the marker for the start of the series :extension => '.xml.gz', :start => 1 ) @base = base reset end |
Instance Method Details
#next ⇒ Object
Return this instance set to the next name
57 58 59 60 61 62 63 64 |
# File 'lib/sitemap_generator/simple_namer.rb', line 57 def next if start? @count = @options[:start] else @count += 1 end self end |
#previous ⇒ Object
Return this instance set to the previous name
67 68 69 70 71 72 73 74 75 |
# File 'lib/sitemap_generator/simple_namer.rb', line 67 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 ⇒ Object
Reset to the first name
47 48 49 |
# File 'lib/sitemap_generator/simple_namer.rb', line 47 def reset @count = @options[:zero] end |
#start? ⇒ Boolean
True if on the first name
52 53 54 |
# File 'lib/sitemap_generator/simple_namer.rb', line 52 def start? @count == @options[:zero] end |
#to_s ⇒ Object
41 42 43 44 |
# File 'lib/sitemap_generator/simple_namer.rb', line 41 def to_s extension = @options[:extension] "#{@base}#{@count}#{extension}" end |