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.
29 30 31 32 33 34 35 36 37 |
# File 'lib/sitemap_generator/simple_namer.rb', line 29 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
55 56 57 58 59 60 61 62 |
# File 'lib/sitemap_generator/simple_namer.rb', line 55 def next if start? @count = @options[:start] else @count += 1 end self end |
#previous ⇒ Object
Return this instance set to the previous name
65 66 67 68 69 70 71 72 73 |
# 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 ⇒ Object
Reset to the first name
45 46 47 |
# File 'lib/sitemap_generator/simple_namer.rb', line 45 def reset @count = @options[:zero] end |
#start? ⇒ Boolean
True if on the first name
50 51 52 |
# File 'lib/sitemap_generator/simple_namer.rb', line 50 def start? @count == @options[:zero] end |
#to_s ⇒ Object
39 40 41 42 |
# File 'lib/sitemap_generator/simple_namer.rb', line 39 def to_s extension = @options[:extension] "#{@base}#{@count}#{extension}" end |