xml-sitemap 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/xml-sitemap.rb +42 -0
  2. metadata +4 -4
data/lib/xml-sitemap.rb CHANGED
@@ -18,10 +18,13 @@ module XmlSitemap
18
18
  class Map
19
19
  attr_reader :domain, :items
20
20
  attr_reader :buffer
21
+ attr_reader :created_at
22
+ attr_accessor :index_path
21
23
 
22
24
  # Creates new Map class for specified domain
23
25
  def initialize(domain)
24
26
  @domain = domain
27
+ @created_at = Time.now
25
28
  @items = []
26
29
  yield self if block_given?
27
30
  end
@@ -37,6 +40,11 @@ module XmlSitemap
37
40
  @items << XmlSitemap::Item.new(opts)
38
41
  end
39
42
 
43
+ # Get map items count
44
+ def size
45
+ @items.size
46
+ end
47
+
40
48
  # Render XML
41
49
  def render
42
50
  return '' if @items.size == 0
@@ -55,4 +63,38 @@ module XmlSitemap
55
63
  return output.join("\n")
56
64
  end
57
65
  end
66
+
67
+ class Index
68
+ attr_reader :domain, :maps
69
+
70
+ def initialize(domain)
71
+ @domain = domain
72
+ @maps = []
73
+ end
74
+
75
+ # Add XmlSitemap::Map item to sitemap index
76
+ def add(map)
77
+ raise 'XmlSitemap::Map object requred!' unless map.kind_of?(Map)
78
+ @maps << {:loc => "http://#{@domain}/#{map.index_path}", :lastmod => map.created_at.for_sitemap}
79
+ end
80
+
81
+ # Generate sitemap XML index
82
+ def render
83
+ output = [] ; map_id = 1
84
+ output << '<?xml version="1.0" encoding="UTF-8"?>'
85
+ output << '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'
86
+ @maps.each do |m|
87
+ output << '<sitemap>'
88
+ output << "<loc>#{m[:loc]}</loc>"
89
+ output << "<lastmod>#{m[:lastmod]}</lastmod>"
90
+ output << '</sitemap>'
91
+ end
92
+ output << '</sitemapindex>'
93
+ return output.join("\n")
94
+ end
95
+ end
96
+ end
97
+
98
+ class Time
99
+ def for_sitemap ; self.utc.strftime("%Y-%m-%dT%H:%M:%S-0000") ; end
58
100
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xml-sitemap
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 2
10
- version: 1.0.2
9
+ - 3
10
+ version: 1.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Dan Sosedoff
@@ -31,7 +31,7 @@ files:
31
31
  - README
32
32
  - lib/xml-sitemap.rb
33
33
  has_rdoc: true
34
- homepage: http://sosedoff.com/
34
+ homepage: http://github.com/sosedoff/xml-sitemap
35
35
  licenses: []
36
36
 
37
37
  post_install_message: