Class: SiteMaps::Builder::SitemapIndex
- Inherits:
-
Object
- Object
- SiteMaps::Builder::SitemapIndex
- Defined in:
- lib/site_maps/builder/sitemap_index.rb
Defined Under Namespace
Classes: Item
Constant Summary collapse
- XML_DECLARATION =
%(<?xml version="1.0" encoding="UTF-8"?>)- SITEMAPINDEX_OPEN =
<<~SITEMAPINDEX_OPEN <sitemapindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" > SITEMAPINDEX_OPEN
- HEADER =
"#{XML_DECLARATION}\n#{SITEMAPINDEX_OPEN}"- FOOTER =
"</sitemapindex>"
Instance Attribute Summary collapse
-
#sitemaps ⇒ Object
readonly
Returns the value of attribute sitemaps.
Instance Method Summary collapse
- #add(loc, lastmod: nil) ⇒ Object
- #empty? ⇒ Boolean
-
#initialize(xsl_url: nil) ⇒ SitemapIndex
constructor
A new instance of SitemapIndex.
- #last_modified ⇒ Object
- #to_xml ⇒ Object
Constructor Details
#initialize(xsl_url: nil) ⇒ SitemapIndex
Returns a new instance of SitemapIndex.
18 19 20 21 |
# File 'lib/site_maps/builder/sitemap_index.rb', line 18 def initialize(xsl_url: nil) @sitemaps = Concurrent::Set.new @xsl_url = xsl_url end |
Instance Attribute Details
#sitemaps ⇒ Object (readonly)
Returns the value of attribute sitemaps.
16 17 18 |
# File 'lib/site_maps/builder/sitemap_index.rb', line 16 def sitemaps @sitemaps end |
Instance Method Details
#add(loc, lastmod: nil) ⇒ Object
23 24 25 26 |
# File 'lib/site_maps/builder/sitemap_index.rb', line 23 def add(loc, lastmod: nil) sitemap = loc.is_a?(Item) ? loc : Item.new(loc, lastmod) @sitemaps.add(sitemap) end |
#empty? ⇒ Boolean
49 50 51 |
# File 'lib/site_maps/builder/sitemap_index.rb', line 49 def empty? @sitemaps.empty? end |
#last_modified ⇒ Object
44 45 46 47 |
# File 'lib/site_maps/builder/sitemap_index.rb', line 44 def last_modified dates = @sitemaps.filter_map { |s| parse_lastmod(s.lastmod) } dates.max || Time.now end |
#to_xml ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/site_maps/builder/sitemap_index.rb', line 28 def to_xml io = StringIO.new if @xsl_url io.puts(XML_DECLARATION) io.puts(XSLStylesheet.processing_instruction(@xsl_url)) io.puts(SITEMAPINDEX_OPEN) else io.puts(HEADER) end @sitemaps.each do |sitemap| io.puts(sitemap.to_xml) end io.puts(FOOTER) io.string end |