xml-sitemap 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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: