sitemap_generator 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +73 -46
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/lib/sitemap_generator/builder/sitemap_file.rb +35 -1
- data/lib/sitemap_generator/builder/sitemap_file.rb.orig +133 -0
- data/lib/sitemap_generator/link.rb +3 -2
- metadata +28 -4
data/README.md
CHANGED
@@ -1,29 +1,37 @@
|
|
1
1
|
SitemapGenerator
|
2
2
|
================
|
3
3
|
|
4
|
-
SitemapGenerator
|
4
|
+
SitemapGenerator generates Sitemaps for your Rails application. The Sitemaps adhere to the [Sitemap 0.9 protocol][sitemap_protocol] specification. You specify the contents of your Sitemap using a configuration file, à la Rails Routes. A set of rake tasks is included to help you manage your Sitemaps.
|
5
5
|
|
6
6
|
Features
|
7
7
|
-------
|
8
8
|
|
9
|
-
-
|
10
|
-
-
|
11
|
-
|
12
|
-
- Adheres to the ['Sitemap protocol specification'][sitemap_protocol]
|
9
|
+
- Supports [Video sitemaps][sitemap_video] and [Image sitemaps][sitemap_images]
|
10
|
+
- Rails3 compatible (beta)
|
11
|
+
- Adheres to the [Sitemap 0.9 protocol][sitemap_protocol]
|
13
12
|
- Handles millions of links
|
14
|
-
-
|
15
|
-
-
|
16
|
-
-
|
17
|
-
-
|
13
|
+
- Compresses Sitemaps using GZip
|
14
|
+
- Notifies Search Engines (Google, Yahoo, Bing, Ask, SitemapWriter) of new sitemaps
|
15
|
+
- Ensures your old Sitemaps stay in place if the new Sitemap fails to generate
|
16
|
+
- You set the hostname (and protocol) of the links in your Sitemap
|
17
|
+
|
18
|
+
Changelog
|
19
|
+
-------
|
20
|
+
|
21
|
+
- v1.1.0: [Video sitemap][sitemap_video] support
|
22
|
+
- v0.2.6: [Image Sitemap][sitemap_images] support
|
23
|
+
- v0.2.5: Rails 3 support (beta)
|
18
24
|
|
19
25
|
Foreword
|
20
26
|
-------
|
21
27
|
|
22
|
-
|
28
|
+
Adam Salter first created SitemapGenerator while we were working together in Sydney, Australia. Unfortunately, he passed away in 2009. Since then I have taken over development of SitemapGenerator.
|
23
29
|
|
24
|
-
|
30
|
+
Those who knew him know what an amazing guy he was, and what an excellent Rails programmer he was. His passing is a great loss to the Rails community.
|
25
31
|
|
26
|
-
|
32
|
+
The canonical repository is now: [http://github.com/kjvarga/sitemap_generator][canonical_repo]
|
33
|
+
|
34
|
+
Install
|
27
35
|
=======
|
28
36
|
|
29
37
|
**Rails 3:**
|
@@ -56,31 +64,55 @@ Installation
|
|
56
64
|
|
57
65
|
1. <code>$ ./script/plugin install git://github.com/kjvarga/sitemap_generator.git</code>
|
58
66
|
|
59
|
-
|
67
|
+
Usage
|
68
|
+
======
|
69
|
+
|
70
|
+
<code>rake sitemap:install</code> creates a <tt>config/sitemap.rb</tt> file which will contain your logic for generating the Sitemap files.
|
71
|
+
|
72
|
+
Once you have configured your sitemap in <tt>config/sitemap.rb</tt> run <code>rake sitemap:refresh</code> as needed to create/rebuild your Sitemap files. Sitemaps are generated into the <tt>public/</tt> folder and are named <tt>sitemap_index.xml.gz</tt>, <tt>sitemap1.xml.gz</tt>, <tt>sitemap2.xml.gz</tt>, etc.
|
73
|
+
|
74
|
+
Using <code>rake sitemap:refresh</code> will notify major search engines to let them know that a new Sitemap is available (Google, Yahoo, Bing, Ask, SitemapWriter). To generate new Sitemaps without notifying search engines (for example when running in a local environment) use <code>rake sitemap:refresh:no_ping</code>.
|
75
|
+
|
76
|
+
To ping Yahoo you will need to set your Yahoo AppID in <tt>config/sitemap.rb</tt>. For example: <code>SitemapGenerator::Sitemap.yahoo_app_id = "my_app_id"</code>
|
60
77
|
|
61
|
-
|
78
|
+
To disable all non-essential output (only errors will be displayed) run the rake tasks with the <code>-s</code> option. For example <code>rake -s sitemap:refresh</code>.
|
62
79
|
|
63
|
-
|
80
|
+
Cron
|
81
|
+
-----
|
64
82
|
|
65
|
-
To keep your Sitemaps up-to-date, setup a cron job.
|
83
|
+
To keep your Sitemaps up-to-date, setup a cron job. Make sure to pass the <code>-s</code> option to silence rake. That way you will only get email when the sitemap build fails.
|
84
|
+
|
85
|
+
If you're using Whenever, your schedule would look something like the following:
|
66
86
|
|
67
87
|
# config/schedule.rb
|
68
88
|
every 1.day, :at => '5:00 am' do
|
69
89
|
rake "-s sitemap:refresh"
|
70
90
|
end
|
71
91
|
|
72
|
-
|
92
|
+
Robots.txt
|
93
|
+
----------
|
94
|
+
|
95
|
+
You should add the Sitemap index file to <code>public/robots.txt</code> to help search engines find your Sitemaps. The URL should be the complete URL to the Sitemap index file. For example:
|
96
|
+
|
97
|
+
Sitemap: http://www.example.org/sitemap_index.xml.gz
|
73
98
|
|
74
|
-
|
99
|
+
Image and Video Sitemaps
|
100
|
+
-----------
|
75
101
|
|
76
|
-
|
102
|
+
Images can be added to a sitemap URL by passing an <tt>:images</tt> array to <tt>add()</tt>. Each item in the array must be a Hash containing tags defined by the [Image Sitemap][image_tags] specification. For example:
|
77
103
|
|
104
|
+
sitemap.add('/index.html', :images => [{ :loc => 'http://www.example.com/image.png', :title => 'Image' }])
|
78
105
|
|
79
|
-
|
80
|
-
|
106
|
+
A video can be added to a sitemap URL by passing a <tt>:video</tt> Hash to <tt>add()</tt>. The Hash can contain tags defined by the [Video Sitemap specification][video_tags]. To associate more than one <tt>tag</tt> with a video, pass the tags as an array with the key <tt>:tags</tt>.
|
107
|
+
|
108
|
+
sitemap.add('/index.html', :video => { :thumbnail_loc => 'http://www.example.com/video1_thumbnail.png', :title => 'Title', :description => 'Description', :content_loc => 'http://www.example.com/cool_video.mpg', :tags => %w[one two three], :category => 'Category' })
|
109
|
+
|
110
|
+
Example <code>config/sitemap.rb</code>
|
111
|
+
---------
|
81
112
|
|
82
113
|
# Set the host name for URL creation
|
83
114
|
SitemapGenerator::Sitemap.default_host = "http://www.example.com"
|
115
|
+
SitemapGenerator::Sitemap.yahoo_app_id = nil # Set to your Yahoo AppID to ping Yahoo
|
84
116
|
|
85
117
|
SitemapGenerator::Sitemap.add_links do |sitemap|
|
86
118
|
# Put links creation logic here.
|
@@ -94,25 +126,21 @@ Example 'config/sitemap.rb'
|
|
94
126
|
# Defaults: :priority => 0.5, :changefreq => 'weekly',
|
95
127
|
# :lastmod => Time.now, :host => default_host
|
96
128
|
|
97
|
-
|
98
|
-
# Examples:
|
99
|
-
|
100
129
|
# add '/articles'
|
101
130
|
sitemap.add articles_path, :priority => 0.7, :changefreq => 'daily'
|
102
131
|
|
103
|
-
# add all
|
104
|
-
Article.
|
132
|
+
# add all articles
|
133
|
+
Article.all.each do |a|
|
105
134
|
sitemap.add article_path(a), :lastmod => a.updated_at
|
106
135
|
end
|
107
136
|
|
108
|
-
# add
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
sitemap.add news_path(
|
137
|
+
# add news page with images
|
138
|
+
News.all.each do |news|
|
139
|
+
images = news.images.collect do |image|
|
140
|
+
{ :loc => image.url, :title => image.name }
|
141
|
+
end
|
142
|
+
sitemap.add news_path(news), :images => images
|
114
143
|
end
|
115
|
-
|
116
144
|
end
|
117
145
|
|
118
146
|
# Including Sitemaps from Rails Engines.
|
@@ -159,9 +187,9 @@ Compatibility
|
|
159
187
|
|
160
188
|
Tested and working on:
|
161
189
|
|
162
|
-
- **Rails** 3.0.0
|
163
|
-
- **Rails** 1.x - 2.3.
|
164
|
-
- **Ruby** 1.8.6, 1.8.7, 1.9.1
|
190
|
+
- **Rails** 3.0.0
|
191
|
+
- **Rails** 1.x - 2.3.8
|
192
|
+
- **Ruby** 1.8.6, 1.8.7, 1.8.7 Enterprise Edition, 1.9.1
|
165
193
|
|
166
194
|
Notes
|
167
195
|
=======
|
@@ -185,8 +213,6 @@ Notes
|
|
185
213
|
end
|
186
214
|
end
|
187
215
|
|
188
|
-
3) If generation of your sitemap fails for some reason, the old sitemap will remain in public/. This ensures that robots will always find a valid sitemap. Running silently (`rake -s sitemap:refresh`) and with email forwarding setup you'll only get an email if your sitemap fails to build, and no notification when everything is fine - which will be most of the time.
|
189
|
-
|
190
216
|
Known Bugs
|
191
217
|
========
|
192
218
|
|
@@ -196,15 +222,16 @@ Known Bugs
|
|
196
222
|
Wishlist & Coming Soon
|
197
223
|
========
|
198
224
|
|
199
|
-
-
|
200
|
-
-
|
201
|
-
|
202
|
-
|
225
|
+
- Ultimately I'd like to make this gem framework agnostic. It is better suited to being run as a command-line tool as opposed to Ruby-specific Rake tasks.
|
226
|
+
- Add rake tasks/options to validate the generated sitemaps.
|
227
|
+
- Support News, Mobile, Geo and other types of sitemaps
|
228
|
+
- Support for generating sitemaps for sites with multiple domains. Sitemaps can be generated into subdirectories and we can use Rack middleware to rewrite requests for sitemaps to the correct subdirectory based on the request host.
|
203
229
|
- Auto coverage testing. Generate a report of broken URLs by checking the status codes of each page in the sitemap.
|
204
230
|
|
205
231
|
Thanks (in no particular order)
|
206
232
|
========
|
207
233
|
|
234
|
+
- [Alex Soto](http://github.com/apsoto) for video sitemaps
|
208
235
|
- [Alexadre Bini](http://github.com/alexandrebini) for image sitemaps
|
209
236
|
- [Dan Pickett](http://github.com/dpickett)
|
210
237
|
- [Rob Biedenharn](http://github.com/rab)
|
@@ -217,11 +244,11 @@ Copyright (c) 2009 Karl Varga released under the MIT license
|
|
217
244
|
|
218
245
|
[canonical_repo]:http://github.com/kjvarga/sitemap_generator
|
219
246
|
[enterprise_class]:https://twitter.com/dhh/status/1631034662 "I use enterprise in the same sense the Phusion guys do - i.e. Enterprise Ruby. Please don't look down on my use of the word 'enterprise' to represent being a cut above. It doesn't mean you ever have to work for a company the size of IBM. Or constantly fight inertia, writing crappy software, adhering to change management practices and spending hours in meetings... Not that there's anything wrong with that - Wait, what?"
|
220
|
-
[sitemap_engines]:http://en.wikipedia.org/wiki/Sitemap_index "http://en.wikipedia.org/wiki/Sitemap_index"
|
221
247
|
[sitemaps_org]:http://www.sitemaps.org/protocol.php "http://www.sitemaps.org/protocol.php"
|
222
248
|
[sitemaps_xml]:http://www.sitemaps.org/protocol.php#xmlTagDefinitions "XML Tag Definitions"
|
223
249
|
[sitemap_generator_usage]:http://wiki.github.com/adamsalter/sitemap_generator/sitemapgenerator-usage "http://wiki.github.com/adamsalter/sitemap_generator/sitemapgenerator-usage"
|
224
|
-
[boost_juice]:http://www.boostjuice.com.au/ "Mmmm, sweet, sweet Boost Juice."
|
225
|
-
[cb]:http://codebright.net "http://codebright.net"
|
226
250
|
[sitemap_images]:http://www.google.com/support/webmasters/bin/answer.py?answer=178636
|
227
|
-
[
|
251
|
+
[sitemap_video]:http://www.google.com/support/webmasters/bin/topic.py?topic=10079
|
252
|
+
[sitemap_protocol]:http://sitemaps.org/protocol.php
|
253
|
+
[video_tags]:http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=80472#4
|
254
|
+
[image_tags]:http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=178636
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
@@ -4,6 +4,14 @@ require 'zlib'
|
|
4
4
|
|
5
5
|
module SitemapGenerator
|
6
6
|
module Builder
|
7
|
+
#
|
8
|
+
# General Usage:
|
9
|
+
#
|
10
|
+
# sitemap = SitemapFile.new('public/', 'sitemap.xml', 'http://example.com')
|
11
|
+
# <- creates a new sitemap file in directory public/
|
12
|
+
# sitemap.add_link({ ... }) <- add a link to the sitemap
|
13
|
+
# sitemap.finalize! <- write and close the sitemap file
|
14
|
+
#
|
7
15
|
class SitemapFile
|
8
16
|
include SitemapGenerator::Builder::Helper
|
9
17
|
|
@@ -32,6 +40,7 @@ module SitemapGenerator
|
|
32
40
|
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
33
41
|
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
|
34
42
|
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
43
|
+
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
|
35
44
|
>
|
36
45
|
HTML
|
37
46
|
@xml_wrapper_start.gsub!(/\s+/, ' ').gsub!(/ *> */, '>').strip!
|
@@ -98,6 +107,31 @@ module SitemapGenerator
|
|
98
107
|
end
|
99
108
|
end
|
100
109
|
end
|
110
|
+
|
111
|
+
unless link[:video].blank?
|
112
|
+
video = link[:video]
|
113
|
+
builder.video :video do
|
114
|
+
# required elements
|
115
|
+
builder.video :content_loc, video[:content_loc] if video[:content_loc]
|
116
|
+
if video[:player_loc]
|
117
|
+
builder.video :player_loc, video[:player_loc], :allow_embed => (video[:allow_embed] ? 'yes' : 'no'), :autoplay => video[:autoplay]
|
118
|
+
end
|
119
|
+
builder.video :thumbnail_loc, video[:thumbnail_loc]
|
120
|
+
builder.video :title, video[:title]
|
121
|
+
builder.video :description, video[:description]
|
122
|
+
|
123
|
+
builder.video :rating, video[:rating] if video[:rating]
|
124
|
+
builder.video :view_count, video[:view_count] if video[:view_count]
|
125
|
+
builder.video :publication_date, video[:publication_date] if video[:publication_date]
|
126
|
+
builder.video :expiration_date, video[:expiration_date] if video[:expiration_date]
|
127
|
+
builder.video :duration, video[:duration] if video[:duration]
|
128
|
+
builder.video :family_friendly, (video[:family_friendly] ? 'yes' : 'no') if video[:family_friendly]
|
129
|
+
builder.video :duration, video[:duration] if video[:duration]
|
130
|
+
video[:tags].each {|tag| builder.video :tag, tag } if video[:tags]
|
131
|
+
builder.video :tag, video[:tag] if video[:tag]
|
132
|
+
builder.video :category, video[:category] if video[:category]
|
133
|
+
end
|
134
|
+
end
|
101
135
|
end
|
102
136
|
builder << ''
|
103
137
|
end
|
@@ -126,4 +160,4 @@ module SitemapGenerator
|
|
126
160
|
end
|
127
161
|
end
|
128
162
|
end
|
129
|
-
end
|
163
|
+
end
|
@@ -0,0 +1,133 @@
|
|
1
|
+
require 'sitemap_generator/builder/helper'
|
2
|
+
require 'builder'
|
3
|
+
require 'zlib'
|
4
|
+
|
5
|
+
module SitemapGenerator
|
6
|
+
module Builder
|
7
|
+
class SitemapFile
|
8
|
+
include SitemapGenerator::Builder::Helper
|
9
|
+
|
10
|
+
attr_accessor :sitemap_path, :public_path, :filesize, :link_count, :hostname
|
11
|
+
|
12
|
+
# <tt>public_path</tt> full path of the directory to write sitemaps in.
|
13
|
+
# Usually your Rails <tt>public/</tt> directory.
|
14
|
+
#
|
15
|
+
# <tt>sitemap_path</tt> relative path including filename of the sitemap
|
16
|
+
# file relative to <tt>public_path</tt>
|
17
|
+
#
|
18
|
+
# <tt>hostname</tt> hostname including protocol to use in all links
|
19
|
+
# e.g. http://en.google.ca
|
20
|
+
def initialize(public_path, sitemap_path, hostname)
|
21
|
+
self.sitemap_path = sitemap_path
|
22
|
+
self.public_path = public_path
|
23
|
+
self.hostname = hostname
|
24
|
+
self.link_count = 0
|
25
|
+
|
26
|
+
@xml_content = '' # XML urlset content
|
27
|
+
@xml_wrapper_start = <<-HTML
|
28
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
29
|
+
<urlset
|
30
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
31
|
+
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
|
32
|
+
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
33
|
+
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
|
34
|
+
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
35
|
+
>
|
36
|
+
HTML
|
37
|
+
<<<<<<< HEAD
|
38
|
+
@xml_wrapper_start.gsub!(/\s+/, ' ').gsub!(/ *> */, '>').strip!
|
39
|
+
=======
|
40
|
+
@xml_wrapper_start.gsub!(/\s+/, ' ').gsub!(/ *> */, '>').gsub!(' <','<')
|
41
|
+
>>>>>>> 7f3f574... removing first space on xml start. ' <?xml...' becames '<?xml...>' it's allow firefox xml view
|
42
|
+
@xml_wrapper_end = %q[</urlset>]
|
43
|
+
self.filesize = bytesize(@xml_wrapper_start) + bytesize(@xml_wrapper_end)
|
44
|
+
end
|
45
|
+
|
46
|
+
def lastmod
|
47
|
+
File.mtime(self.full_path) rescue nil
|
48
|
+
end
|
49
|
+
|
50
|
+
def empty?
|
51
|
+
self.link_count == 0
|
52
|
+
end
|
53
|
+
|
54
|
+
def full_url
|
55
|
+
URI.join(self.hostname, self.sitemap_path).to_s
|
56
|
+
end
|
57
|
+
|
58
|
+
def full_path
|
59
|
+
@full_path ||= File.join(self.public_path, self.sitemap_path)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Return a boolean indicating whether the sitemap file can fit another link
|
63
|
+
# of <tt>bytes</tt> bytes in size.
|
64
|
+
def file_can_fit?(bytes)
|
65
|
+
(self.filesize + bytes) < SitemapGenerator::MAX_SITEMAP_FILESIZE && self.link_count < SitemapGenerator::MAX_SITEMAP_LINKS
|
66
|
+
end
|
67
|
+
|
68
|
+
# Add a link to the sitemap file and return a boolean indicating whether the
|
69
|
+
# link was added.
|
70
|
+
#
|
71
|
+
# If a link cannot be added, the file is too large or the link limit has been reached.
|
72
|
+
def add_link(link)
|
73
|
+
xml = build_xml(::Builder::XmlMarkup.new, link)
|
74
|
+
unless file_can_fit?(bytesize(xml))
|
75
|
+
self.finalize!
|
76
|
+
return false
|
77
|
+
end
|
78
|
+
|
79
|
+
@xml_content << xml
|
80
|
+
self.filesize += bytesize(xml)
|
81
|
+
self.link_count += 1
|
82
|
+
true
|
83
|
+
end
|
84
|
+
alias_method :<<, :add_link
|
85
|
+
|
86
|
+
# Return XML as a String
|
87
|
+
def build_xml(builder, link)
|
88
|
+
builder.url do
|
89
|
+
builder.loc link[:loc]
|
90
|
+
builder.lastmod w3c_date(link[:lastmod]) if link[:lastmod]
|
91
|
+
builder.changefreq link[:changefreq] if link[:changefreq]
|
92
|
+
builder.priority link[:priority] if link[:priority]
|
93
|
+
|
94
|
+
unless link[:images].blank?
|
95
|
+
link[:images].each do |image|
|
96
|
+
builder.image:image do
|
97
|
+
builder.image :loc, image[:loc]
|
98
|
+
builder.image :caption, image[:caption] if image[:caption]
|
99
|
+
builder.image :geo_location, image[:geo_location] if image[:geo_location]
|
100
|
+
builder.image :title, image[:title] if image[:title]
|
101
|
+
builder.image :license, image[:license] if image[:license]
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
builder << ''
|
107
|
+
end
|
108
|
+
|
109
|
+
# Insert the content into the XML "wrapper" and write and close the file.
|
110
|
+
#
|
111
|
+
# All the xml content in the instance is cleared, but attributes like
|
112
|
+
# <tt>filesize</tt> are still available.
|
113
|
+
def finalize!
|
114
|
+
return if self.frozen?
|
115
|
+
|
116
|
+
open(self.full_path, 'wb') do |file|
|
117
|
+
gz = Zlib::GzipWriter.new(file)
|
118
|
+
gz.write @xml_wrapper_start
|
119
|
+
gz.write @xml_content
|
120
|
+
gz.write @xml_wrapper_end
|
121
|
+
gz.close
|
122
|
+
end
|
123
|
+
@xml_content = @xml_wrapper_start = @xml_wrapper_end = ''
|
124
|
+
self.freeze
|
125
|
+
end
|
126
|
+
|
127
|
+
# Return the bytesize length of the string
|
128
|
+
def bytesize(string)
|
129
|
+
string.respond_to?(:bytesize) ? string.bytesize : string.length
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
@@ -9,7 +9,7 @@ module SitemapGenerator
|
|
9
9
|
path = path.sitemap_path
|
10
10
|
end
|
11
11
|
|
12
|
-
options.assert_valid_keys(:priority, :changefreq, :lastmod, :host, :images)
|
12
|
+
options.assert_valid_keys(:priority, :changefreq, :lastmod, :host, :images, :video)
|
13
13
|
options.reverse_merge!(:priority => 0.5, :changefreq => 'weekly', :lastmod => Time.now, :host => Sitemap.default_host, :images => [])
|
14
14
|
{
|
15
15
|
:path => path,
|
@@ -18,7 +18,8 @@ module SitemapGenerator
|
|
18
18
|
:lastmod => options[:lastmod],
|
19
19
|
:host => options[:host],
|
20
20
|
:loc => URI.join(options[:host], path).to_s,
|
21
|
-
:images => prepare_images(options[:images], options[:host])
|
21
|
+
:images => prepare_images(options[:images], options[:host]),
|
22
|
+
:video => options[:video]
|
22
23
|
}
|
23
24
|
end
|
24
25
|
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sitemap_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 19
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 1
|
7
|
-
- 0
|
8
8
|
- 1
|
9
|
-
|
9
|
+
- 0
|
10
|
+
version: 1.1.0
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Karl Varga
|
@@ -15,16 +16,18 @@ autorequire:
|
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date: 2010-
|
19
|
+
date: 2010-09-16 00:00:00 -07:00
|
19
20
|
default_executable:
|
20
21
|
dependencies:
|
21
22
|
- !ruby/object:Gem::Dependency
|
22
23
|
name: rspec
|
23
24
|
prerelease: false
|
24
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
25
27
|
requirements:
|
26
28
|
- - ">="
|
27
29
|
- !ruby/object:Gem::Version
|
30
|
+
hash: 3
|
28
31
|
segments:
|
29
32
|
- 0
|
30
33
|
version: "0"
|
@@ -34,14 +37,30 @@ dependencies:
|
|
34
37
|
name: nokogiri
|
35
38
|
prerelease: false
|
36
39
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
37
41
|
requirements:
|
38
42
|
- - ">="
|
39
43
|
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
40
45
|
segments:
|
41
46
|
- 0
|
42
47
|
version: "0"
|
43
48
|
type: :development
|
44
49
|
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: sqlite3-ruby
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
62
|
+
type: :development
|
63
|
+
version_requirements: *id003
|
45
64
|
description: SitemapGenerator is a Rails gem that makes it easy to generate enterprise-class Sitemaps readable by all search engines. Generated Sitemaps adhere to the Sitemap protocol specification. When you generate new Sitemaps, SitemapGenerator can automatically ping the major search engines (including Google, Yahoo and Bing) to notify them. SitemapGenerator includes rake tasks to easily manage your sitemaps.
|
46
65
|
email: kjvarga@gmail.com
|
47
66
|
executables: []
|
@@ -59,6 +78,7 @@ files:
|
|
59
78
|
- lib/sitemap_generator/builder.rb
|
60
79
|
- lib/sitemap_generator/builder/helper.rb
|
61
80
|
- lib/sitemap_generator/builder/sitemap_file.rb
|
81
|
+
- lib/sitemap_generator/builder/sitemap_file.rb.orig
|
62
82
|
- lib/sitemap_generator/builder/sitemap_index_file.rb
|
63
83
|
- lib/sitemap_generator/interpreter.rb
|
64
84
|
- lib/sitemap_generator/link.rb
|
@@ -82,23 +102,27 @@ rdoc_options:
|
|
82
102
|
require_paths:
|
83
103
|
- lib
|
84
104
|
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
85
106
|
requirements:
|
86
107
|
- - ">="
|
87
108
|
- !ruby/object:Gem::Version
|
109
|
+
hash: 3
|
88
110
|
segments:
|
89
111
|
- 0
|
90
112
|
version: "0"
|
91
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
92
115
|
requirements:
|
93
116
|
- - ">="
|
94
117
|
- !ruby/object:Gem::Version
|
118
|
+
hash: 3
|
95
119
|
segments:
|
96
120
|
- 0
|
97
121
|
version: "0"
|
98
122
|
requirements: []
|
99
123
|
|
100
124
|
rubyforge_project:
|
101
|
-
rubygems_version: 1.3.
|
125
|
+
rubygems_version: 1.3.7
|
102
126
|
signing_key:
|
103
127
|
specification_version: 3
|
104
128
|
summary: Easily generate enterprise class Sitemaps for your Rails site using a familiar Rails Routes-like DSL
|