xml-sitemap 1.1.3 → 1.3.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.
data/spec/map_spec.rb CHANGED
@@ -1,123 +1,285 @@
1
+ require 'benchmark'
1
2
  require 'spec_helper'
2
3
 
3
4
  describe XmlSitemap::Map do
4
- before :all do
5
- @base_time = Time.gm(2011, 6, 1, 0, 0, 1)
6
- @extra_time = Time.gm(2011, 7, 1, 0, 0, 1)
7
- end
8
-
9
- it 'should not allow empty domains' do
10
- proc { XmlSitemap::Map.new(nil) }.should raise_error ArgumentError
11
- proc { XmlSitemap::Map.new('') }.should raise_error ArgumentError
12
- proc { XmlSitemap::Map.new(' ') }.should raise_error ArgumentError
13
- end
14
-
15
- it 'should not allow empty urls' do
16
- map = XmlSitemap::Map.new('foobar.com')
17
- proc { map.add(nil) }.should raise_error ArgumentError
18
- proc { map.add('') }.should raise_error ArgumentError
19
- proc { map.add(' ') }.should raise_error ArgumentError
20
- end
21
-
22
- it 'should have a home path by default' do
23
- map = XmlSitemap::Map.new('foobar.com')
24
- map.empty?.should == false
25
- map.items.first.target.should == 'http://foobar.com/'
26
- end
27
-
28
- it 'should not have a home path with option' do
29
- map = XmlSitemap::Map.new('foobar.com', :home => false)
30
- map.empty?.should == true
31
- end
32
-
33
- it 'should autocomplete path with no starting slash' do
34
- map = XmlSitemap::Map.new('foobar.com')
35
- map.add('about').target.should == 'http://foobar.com/about'
36
- end
37
-
38
- it 'should allow full urls in items' do
39
- map = XmlSitemap::Map.new('foobar.com', :root => false)
40
- map.add('https://foobar.com/path').target.should == 'https://foobar.com/path'
41
- map.add('path2').target.should == 'http://foobar.com/path2'
42
- end
43
-
44
- it 'should render urls in https mode' do
45
- map = XmlSitemap::Map.new('foobar.com', :secure => true)
46
- map.add('path').target.should == 'https://foobar.com/path'
47
- end
48
-
49
- it 'should properly set entry time' do
50
- map = XmlSitemap::Map.new('foobar.com', :time => @base_time)
51
- map.add('hello').updated.should == @base_time
52
- map.add('world', :updated => @extra_time).updated.should == Time.gm(2011, 7, 1, 0, 0, 1)
53
- end
54
-
55
- it 'should raise Argument error if no time or date were provided' do
56
- map = XmlSitemap::Map.new('foobar.com', :time => @base_time)
57
- proc { map.add('hello', :updated => 'invalid data') }.
58
- should raise_error ArgumentError, "Time or Date required for :updated!"
59
- end
60
-
61
- it 'should have properly encoded entities' do
62
- map = XmlSitemap::Map.new('foobar.com', :time => @base_time)
63
- map.add('/path?a=b&c=d&e=sample string')
64
- map.render.should == fixture('encoded_map.xml')
65
- end
66
-
67
- it 'should not allow more than 50k records' do
68
- map = XmlSitemap::Map.new('foobar.com')
69
- proc {
70
- 1.upto(50000) { |i| map.add("url#{i}") }
71
- }.should raise_error RuntimeError, 'Only less than 50k records allowed!'
5
+ let(:base_time) { Time.gm(2011, 6, 1, 0, 0, 1) }
6
+ let(:extra_time) { Time.gm(2011, 7, 1, 0, 0, 1) }
7
+
8
+ describe '#new' do
9
+ it 'should not allow empty domains' do
10
+ expect { XmlSitemap::Map.new(nil) }.to raise_error ArgumentError
11
+ expect { XmlSitemap::Map.new('') }.to raise_error ArgumentError
12
+ expect { XmlSitemap::Map.new(' ') }.to raise_error ArgumentError
13
+ end
14
+
15
+ it 'should not allow empty urls' do
16
+ map = XmlSitemap::Map.new('foobar.com')
17
+
18
+ expect { map.add(nil) }.to raise_error ArgumentError
19
+ expect { map.add('') }.to raise_error ArgumentError
20
+ expect { map.add(' ') }.to raise_error ArgumentError
21
+ end
22
+
23
+ it 'should have a default home path' do
24
+ map = XmlSitemap::Map.new('foobar.com')
25
+ map.should_not be_empty
26
+ map.items.first.target.should eq('http://foobar.com/')
27
+ end
28
+
29
+ context 'with :home => false' do
30
+ it 'should have no home path' do
31
+ map = XmlSitemap::Map.new('foobar.com', :home => false)
32
+ map.should be_empty
33
+ end
34
+ end
72
35
  end
73
-
74
- it 'should not allow urls longer than 2048 characters' do
75
- long_string = (1..2049).to_a.map { |i| "a" }.join
76
-
77
- map = XmlSitemap::Map.new('foobar.com')
78
- proc {
79
- map.add(long_string)
80
- }.should raise_error ArgumentError, "Target can't be longer than 2,048 characters!"
36
+
37
+ describe '#add' do
38
+ it 'should autocomplete path with no starting slash' do
39
+ map = XmlSitemap::Map.new('foobar.com')
40
+ map.add('about').target.should eq('http://foobar.com/about')
41
+ end
42
+
43
+ it 'should allow full urls in items' do
44
+ map = XmlSitemap::Map.new('foobar.com', :root => false)
45
+ map.add('https://foobar.com/path').target.should eq('https://foobar.com/path')
46
+ map.add('path2').target.should eq('http://foobar.com/path2')
47
+ end
48
+
49
+ it 'should render urls in https mode' do
50
+ map = XmlSitemap::Map.new('foobar.com', :secure => true)
51
+ map.add('path').target.should eq('https://foobar.com/path')
52
+ end
53
+
54
+ it 'should set entry time' do
55
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
56
+ map.add('hello').updated.should eq(base_time)
57
+ map.add('world', :updated => extra_time).updated.should eq(Time.gm(2011, 7, 1, 0, 0, 1))
58
+ end
59
+
60
+ it 'should raise Argument error if no time or date were provided' do
61
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
62
+ expect { map.add('hello', :updated => 5) }.
63
+ to raise_error ArgumentError, "Time, Date, or ISO8601 String required for :updated!"
64
+ end
65
+
66
+ it 'should not raise Argument error if a iso8601 string is provided' do
67
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
68
+ expect { map.add('hello', :updated => "2011-09-12T23:18:49Z") }.not_to raise_error
69
+ map.add('world', :updated => extra_time.utc.iso8601).updated.should eq(Time.gm(2011, 7, 1, 0, 0, 1).utc.iso8601)
70
+ end
71
+
72
+ it 'should not raise Argument error if a string is provided with :validate_time => false' do
73
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
74
+ expect { map.add('hello', :validate_time => false, :updated => 'invalid data') }.not_to raise_error
75
+ end
76
+
77
+ it 'should raise Argument error if an invalid string is provided' do
78
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
79
+ expect { map.add('hello', :updated => 'invalid data') }.
80
+ to raise_error ArgumentError, "String provided to :updated did not match ISO8601 standard!"
81
+ end
82
+
83
+ it 'should not allow more than 50k records' do
84
+ map = XmlSitemap::Map.new('foobar.com')
85
+ expect {
86
+ 1.upto(50001) { |i| map.add("url#{i}") }
87
+ }.to raise_error RuntimeError, 'Only up to 50k records allowed!'
88
+ end
89
+
90
+ it 'should not allow urls longer than 2048 characters' do
91
+ long_string = (1..2049).to_a.map { |i| "a" }.join
92
+
93
+ map = XmlSitemap::Map.new('foobar.com')
94
+ expect {
95
+ map.add(long_string)
96
+ }.to raise_error ArgumentError, "Target can't be longer than 2,048 characters!"
97
+ end
81
98
  end
82
-
83
- it 'should save contents to the filesystem' do
84
- map = XmlSitemap::Map.new('foobar.com', :time => @base_time) do |m|
85
- m.add('about')
86
- m.add('terms')
87
- m.add('privacy')
88
- end
89
- path = "/tmp/sitemap_#{Time.now.to_i}.xml"
90
- map.render_to(path)
91
- File.read(path).should == fixture('saved_map.xml')
92
- File.delete(path) if File.exists?(path)
99
+
100
+ describe '#render' do
101
+
102
+ before do
103
+ opts1 = { :image_location => "http://foobar.com/foo.gif" }
104
+ opts2 = { :image_location => "http://foobar.com/foo.gif", :image_title => "Image Title" }
105
+ opts3 = { :image_location => "http://foobar.com/foo.gif", :image_caption => "Image Caption" }
106
+ opts4 = { :image_location => "http://foobar.com/foo.gif", :image_license => "Image License" }
107
+ opts5 = { :image_location => "http://foobar.com/foo.gif", :image_geolocation => "Image GeoLocation" }
108
+ opts6 = { :image_location => "http://foobar.com/foo.gif",
109
+ :image_title => "Image Title",
110
+ :image_caption => "Image Caption",
111
+ :image_license => "Image License",
112
+ :image_geolocation => "Image GeoLocation" }
113
+ opts7 = { :video_thumbnail_location => "http://foobar.com/foo.jpg",
114
+ :video_title => "Video Title",
115
+ :video_description => "Video Description",
116
+ :video_content_location => "http://foobar.com/foo.mp4" }
117
+ opts8 = { :video_thumbnail_location => "http://foobar.com/foo.jpg",
118
+ :video_title => "Video Title",
119
+ :video_description => "Video Description",
120
+ :video_player_location => "http://foobar.com/foo.swf" }
121
+ opts9 = { :video_thumbnail_location => "http://foobar.com/foo.jpg",
122
+ :video_title => "Video Title",
123
+ :video_description => "Video Description",
124
+ :video_content_location => "http://foobar.com/foo.mp4",
125
+ :video_player_location => "http://foobar.com/foo.swf",
126
+ :video_duration => 180,
127
+ :video_expiration_date => Time.gm(2012, 6, 1, 0, 0, 1),
128
+ :video_rating => 3.5,
129
+ :video_view_count => 2500,
130
+ :video_publication_date => base_time,
131
+ :video_family_friendly => "no",
132
+ :video_category => "Video Category",
133
+ :video_restriction => "IT",
134
+ :video_gallery_location => "http://foobar.com/foo.mpu",
135
+ :video_price => 20,
136
+ :video_requires_subscription => "no",
137
+ :video_uploader => "Video Uploader",
138
+ :video_platform => "web",
139
+ :video_live => "no" }
140
+
141
+ @image_map = XmlSitemap::Map.new('foobar.com', :time => base_time)
142
+ @image_map.add('/path?a=b&c=d&e=image support string', opts1)
143
+ @image_map.add('/path?a=b&c=d&e=image support string', opts2)
144
+ @image_map.add('/path?a=b&c=d&e=image support string', opts3)
145
+ @image_map.add('/path?a=b&c=d&e=image support string', opts4)
146
+ @image_map.add('/path?a=b&c=d&e=image support string', opts5)
147
+ @image_map.add('/path?a=b&c=d&e=image support string', opts6)
148
+
149
+ @video_map = XmlSitemap::Map.new('foobar.com', :time => base_time)
150
+ @video_map.add('/path?a=b&c=d&e=video', opts7)
151
+ @video_map.add('/path?a=b&c=d&e=video', opts8)
152
+ @video_map.add('/path?a=b&c=d&e=video', opts9)
153
+ end
154
+
155
+ it 'should have properly encoded entities' do
156
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
157
+ map.add('/path?a=b&c=d&e=sample string')
158
+ map.render.split("\n")[2..-1].join("\n").should == fixture('encoded_map.xml').split("\n")[2..-1].join("\n")
159
+ end
160
+
161
+ context 'with builder engine' do
162
+ it 'should have properly encoded entities' do
163
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
164
+ map.add('/path?a=b&c=d&e=sample string')
165
+ s = map.render(:builder)
166
+ # ignore ordering of urlset attributes by dropping first two lines
167
+ s.split("\n")[2..-1].join("\n").should == fixture('encoded_map.xml').split("\n")[2..-1].join("\n")
168
+ end
169
+
170
+ it 'should have properly encoded entities with image support' do
171
+ s = @image_map.render(:builder)
172
+ s.split("\n")[2..-1].join("\n").should == fixture('encoded_image_map.xml').split("\n")[2..-1].join("\n")
173
+ end
174
+
175
+ it 'should have properly encoded entities with video support' do
176
+ s = @video_map.render(:builder)
177
+ s.split("\n")[2..-1].join("\n").should == fixture('encoded_video_map.xml').split("\n")[2..-1].join("\n")
178
+ end
179
+ end
180
+
181
+ context 'with nokogiri engine' do
182
+ it 'should have properly encoded entities' do
183
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
184
+ map.add('/path?a=b&c=d&e=sample string')
185
+ s = map.render(:nokogiri)
186
+ # ignore ordering of urlset attributes by dropping first two lines
187
+ s.split("\n")[2..-1].join("\n").should == fixture('encoded_map.xml').split("\n")[2..-1].join("\n")
188
+ end
189
+
190
+ it 'should have properly encoded entities with image support' do
191
+ s = @image_map.render(:nokogiri)
192
+ s.split("\n")[2..-1].join("\n").should == fixture('encoded_image_map.xml').split("\n")[2..-1].join("\n")
193
+ end
194
+
195
+ it 'should have properly encoded entities with video support' do
196
+ s = @video_map.render(:nokogiri)
197
+ s.split("\n")[2..-1].join("\n").should == fixture('encoded_video_map.xml').split("\n")[2..-1].join("\n")
198
+ end
199
+ end
200
+
201
+ context 'with string engine' do
202
+ it 'should have properly encoded entities' do
203
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
204
+ map.add('/path?a=b&c=d&e=sample string')
205
+ s = map.render(:string)
206
+ # ignore ordering of urlset attributes by dropping first two lines
207
+ s.split("\n")[2..-1].join("\n").should == fixture('encoded_map.xml').split("\n")[2..-1].join("\n")
208
+ end
209
+
210
+ it 'should have properly encoded entities with image support' do
211
+ s = @image_map.render(:string)
212
+ s.split("\n")[2..-1].join("\n").should == fixture('encoded_image_map.xml').split("\n")[2..-1].join("\n")
213
+ end
214
+
215
+ it 'should have properly encoded entities with video support' do
216
+ s = @video_map.render(:string)
217
+ s.split("\n")[2..-1].join("\n").should == fixture('encoded_video_map.xml').split("\n")[2..-1].join("\n")
218
+ end
219
+ end
93
220
  end
94
-
95
- it 'should save gzip contents to the filesystem' do
96
- map = XmlSitemap::Map.new('foobar.com', :time => @base_time)
97
-
98
- path = "/tmp/sitemap.xml"
99
- path_gzip = path + ".gz"
100
-
101
- map.render_to(path)
102
- map.render_to(path_gzip, :gzip => true)
103
-
104
- checksum(File.read(path)).should == checksum(gunzip(path_gzip))
105
-
106
- File.delete(path) if File.exists?(path)
107
- File.delete(path_gzip) if File.exists?(path_gzip)
221
+
222
+ describe '#render_to' do
223
+ it 'should save contents to the filesystem' do
224
+ path = "/tmp/sitemap_#{Time.now.to_i}.xml"
225
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time) do |m|
226
+ m.add('about')
227
+ m.add('terms')
228
+ m.add('privacy')
229
+ end
230
+
231
+ map.render_to(path)
232
+
233
+ File.read(path).split("\n")[2..-1].join("\n").should eq(fixture('saved_map.xml').split("\n")[2..-1].join("\n"))
234
+ File.delete(path) if File.exists?(path)
235
+ end
236
+
237
+ context 'with :gzip => true' do
238
+ it 'should save gzip contents to the filesystem' do
239
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
240
+
241
+ path = "/tmp/sitemap.xml"
242
+ path_gzip = path + ".gz"
243
+
244
+ map.render_to(path)
245
+ map.render_to(path_gzip, :gzip => true)
246
+
247
+ checksum(File.read(path)).should eq(checksum(gunzip(path_gzip)))
248
+
249
+ File.delete(path) if File.exists?(path)
250
+ File.delete(path_gzip) if File.exists?(path_gzip)
251
+ end
252
+
253
+ it 'should add .gz extension if comression is enabled' do
254
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
255
+ path = '/tmp/sitemap.xml'
256
+ path_gzip = path + ".gz"
257
+
258
+ map.render_to(path)
259
+ map.render_to(path, :gzip => true)
260
+
261
+ checksum(File.read(path)).should eq(checksum(gunzip(path_gzip)))
262
+
263
+ File.delete(path) if File.exists?(path)
264
+ File.delete(path_gzip) if File.exists?(path_gzip)
265
+ end
266
+ end
108
267
  end
109
-
110
- it 'should add .gz extension if comression is enabled' do
111
- map = XmlSitemap::Map.new('foobar.com', :time => @base_time)
112
- path = '/tmp/sitemap.xml'
113
- path_gzip = path + ".gz"
114
-
115
- map.render_to(path)
116
- map.render_to(path, :gzip => true)
117
-
118
- checksum(File.read(path)).should == checksum(gunzip(path_gzip))
119
-
120
- File.delete(path) if File.exists?(path)
121
- File.delete(path_gzip) if File.exists?(path_gzip)
268
+
269
+ describe 'performance' do
270
+ it 'should test rendering time' do
271
+ pending "comment this line to run benchmarks, takes roughly 30 seconds"
272
+ map = XmlSitemap::Map.new('foobar.com', :time => base_time)
273
+
274
+ 50000.times do |i|
275
+ map.add("hello#{i}")
276
+ end
277
+
278
+ Benchmark.bm do |x|
279
+ x.report("render(:builder)") { map.render(:builder) }
280
+ x.report("render(:nokogiri)") { map.render(:nokogiri) }
281
+ x.report("render(:string)") { map.render(:string) }
282
+ end
283
+ end
122
284
  end
123
- end
285
+ end
data/spec/spec_helper.rb CHANGED
@@ -29,3 +29,13 @@ def gunzip(path)
29
29
  end
30
30
  contents
31
31
  end
32
+
33
+ module FileHelper
34
+ def delete_if_exists(path)
35
+ File.delete(path) if File.exists?(path)
36
+ end
37
+ end
38
+
39
+ class File
40
+ extend FileHelper
41
+ end
@@ -1,12 +1,27 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'XmlSitemap' do
4
- it 'creates a Map via shortcut' do
5
- XmlSitemap.new('foo.com').should be_a XmlSitemap::Map
6
- XmlSitemap.map('foo.com').should be_a XmlSitemap::Map
4
+ describe '#new' do
5
+ it 'returns a new map instance' do
6
+ XmlSitemap.new('foo.com').should be_a XmlSitemap::Map
7
+ end
7
8
  end
8
-
9
- it 'creates an Index via shortcut' do
10
- XmlSitemap.index.should be_a XmlSitemap::Index
9
+
10
+ describe '#map' do
11
+ it 'returns a new map instance' do
12
+ XmlSitemap.map('foo.com').should be_a XmlSitemap::Map
13
+ end
14
+ end
15
+
16
+ describe '#index' do
17
+ it 'returns a new index instancet' do
18
+ XmlSitemap.index.should be_a XmlSitemap::Index
19
+ end
20
+ end
21
+
22
+ describe '#version' do
23
+ it 'returns current version string' do
24
+ XmlSitemap.version.should eq(XmlSitemap::VERSION)
25
+ end
11
26
  end
12
27
  end
data/xml-sitemap.gemspec CHANGED
@@ -2,18 +2,19 @@ require File.expand_path('../lib/xml-sitemap/version', __FILE__)
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "xml-sitemap"
5
- s.version = XmlSitemap::VERSION.dup
5
+ s.version = XmlSitemap::VERSION
6
6
  s.summary = "Simple XML sitemap generator for Ruby/Rails applications."
7
7
  s.description = "Provides a wrapper to generate XML sitemaps and sitemap indexes."
8
8
  s.homepage = "http://github.com/sosedoff/xml-sitemap"
9
9
  s.authors = ["Dan Sosedoff"]
10
10
  s.email = ["dan.sosedoff@gmail.com"]
11
11
 
12
- s.add_development_dependency 'rake', '~> 0.8'
13
- s.add_development_dependency 'rspec', '~> 2.6'
14
- s.add_development_dependency 'simplecov', '~> 0.4'
12
+ s.add_development_dependency 'rake', '~> 10.0'
13
+ s.add_development_dependency 'rspec', '~> 2.13'
14
+ s.add_development_dependency 'simplecov', '~> 0.7'
15
+ s.add_development_dependency 'nokogiri', '~> 1.5'
15
16
 
16
- s.add_runtime_dependency 'builder', '>= 2.0'
17
+ s.add_runtime_dependency 'builder', '>= 2.0'
17
18
 
18
19
  s.files = `git ls-files`.split("\n")
19
20
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
metadata CHANGED
@@ -1,60 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xml-sitemap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
5
- prerelease:
4
+ version: 1.3.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Dan Sosedoff
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2011-09-08 00:00:00.000000000Z
11
+ date: 2013-11-04 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
- requirement: &2154904800 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: '0.8'
19
+ version: '10.0'
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *2154904800
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '10.0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rspec
27
- requirement: &2154904300 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ~>
31
32
  - !ruby/object:Gem::Version
32
- version: '2.6'
33
+ version: '2.13'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *2154904300
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '2.13'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: simplecov
38
- requirement: &2154903840 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
45
  - - ~>
42
46
  - !ruby/object:Gem::Version
43
- version: '0.4'
47
+ version: '0.7'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *2154903840
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: nokogiri
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.5'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.5'
47
69
  - !ruby/object:Gem::Dependency
48
70
  name: builder
49
- requirement: &2154903380 !ruby/object:Gem::Requirement
50
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
51
72
  requirements:
52
- - - ! '>='
73
+ - - '>='
53
74
  - !ruby/object:Gem::Version
54
75
  version: '2.0'
55
76
  type: :runtime
56
77
  prerelease: false
57
- version_requirements: *2154903380
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '2.0'
58
83
  description: Provides a wrapper to generate XML sitemaps and sitemap indexes.
59
84
  email:
60
85
  - dan.sosedoff@gmail.com
@@ -66,56 +91,68 @@ files:
66
91
  - .rspec
67
92
  - .travis.yml
68
93
  - Gemfile
94
+ - LICENSE
69
95
  - README.md
70
96
  - Rakefile
71
97
  - lib/xml-sitemap.rb
72
98
  - lib/xml-sitemap/index.rb
99
+ - lib/xml-sitemap/item.rb
73
100
  - lib/xml-sitemap/map.rb
74
101
  - lib/xml-sitemap/options.rb
102
+ - lib/xml-sitemap/render_engine.rb
75
103
  - lib/xml-sitemap/version.rb
76
104
  - spec/fixtures/empty_index.xml
105
+ - spec/fixtures/encoded_image_map.xml
77
106
  - spec/fixtures/encoded_map.xml
107
+ - spec/fixtures/encoded_video_map.xml
78
108
  - spec/fixtures/group_index.xml
79
109
  - spec/fixtures/sample_index.xml
110
+ - spec/fixtures/sample_index_secure.xml
111
+ - spec/fixtures/sample_many_subdomains_index.xml
80
112
  - spec/fixtures/saved_map.xml
81
113
  - spec/fixtures/simple_map.xml
82
114
  - spec/index_spec.rb
115
+ - spec/item_spec.rb
83
116
  - spec/map_spec.rb
84
117
  - spec/spec_helper.rb
85
118
  - spec/xmlsitemap_spec.rb
86
119
  - xml-sitemap.gemspec
87
120
  homepage: http://github.com/sosedoff/xml-sitemap
88
121
  licenses: []
122
+ metadata: {}
89
123
  post_install_message:
90
124
  rdoc_options: []
91
125
  require_paths:
92
126
  - lib
93
127
  required_ruby_version: !ruby/object:Gem::Requirement
94
- none: false
95
128
  requirements:
96
- - - ! '>='
129
+ - - '>='
97
130
  - !ruby/object:Gem::Version
98
131
  version: '0'
99
132
  required_rubygems_version: !ruby/object:Gem::Requirement
100
- none: false
101
133
  requirements:
102
- - - ! '>='
134
+ - - '>='
103
135
  - !ruby/object:Gem::Version
104
136
  version: '0'
105
137
  requirements: []
106
138
  rubyforge_project:
107
- rubygems_version: 1.8.10
139
+ rubygems_version: 2.0.5
108
140
  signing_key:
109
- specification_version: 3
141
+ specification_version: 4
110
142
  summary: Simple XML sitemap generator for Ruby/Rails applications.
111
143
  test_files:
112
144
  - spec/fixtures/empty_index.xml
145
+ - spec/fixtures/encoded_image_map.xml
113
146
  - spec/fixtures/encoded_map.xml
147
+ - spec/fixtures/encoded_video_map.xml
114
148
  - spec/fixtures/group_index.xml
115
149
  - spec/fixtures/sample_index.xml
150
+ - spec/fixtures/sample_index_secure.xml
151
+ - spec/fixtures/sample_many_subdomains_index.xml
116
152
  - spec/fixtures/saved_map.xml
117
153
  - spec/fixtures/simple_map.xml
118
154
  - spec/index_spec.rb
155
+ - spec/item_spec.rb
119
156
  - spec/map_spec.rb
120
157
  - spec/spec_helper.rb
121
158
  - spec/xmlsitemap_spec.rb