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 CHANGED
@@ -1,29 +1,37 @@
1
1
  SitemapGenerator
2
2
  ================
3
3
 
4
- SitemapGenerator is a Rails gem that makes it easy to generate ['enterprise-class'][enterprise_class] Sitemaps readable by all search engines. Generated Sitemaps adhere to the ['Sitemap protocol specification'][sitemap_protocol]. 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.
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
- - v0.2.6: ['Google Image Sitemap'][sitemap_images] support
10
- - v0.2.5: Rails 3 support (beta)
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
- - Automatic Gzip of Sitemap files
15
- - Automatic ping of search engines to notify them of new sitemaps: Google, Yahoo, Bing, Ask, SitemapWriter
16
- - Leaves your old sitemaps in place if a new one fails to generate
17
- - Allows you to set the hostname for the links in your Sitemap
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
- Unfortunately, Adam Salter passed away in 2009. 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.
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
- [Karl Varga](http://github.com/kjvarga) has taken over development of SitemapGenerator. The canonical repository is [http://github.com/kjvarga/sitemap_generator][canonical_repo]
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
- Installation
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
- Installation creates a <tt>config/sitemap.rb</tt> file which will contain your logic for generating the Sitemap files. If you want to create this file manually run <code>rake sitemap:install</code>.
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
- You can run <code>rake sitemap:refresh</code> as needed to create Sitemap files. This will also ping these ['major search engines'][sitemap_engines]: Google, Yahoo, Bing, Ask, SitemapWriter. If you want to disable all non-essential output run the rake task with <code>rake -s sitemap:refresh</code>.
80
+ Cron
81
+ -----
64
82
 
65
- To keep your Sitemaps up-to-date, setup a cron job. Pass the <tt>-s</tt> option to the rake task to silence all but the most important output. If you're using Whenever, then your schedule would look something like:
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
- Optionally, you can add the following to your <code>public/robots.txt</code> file, so that robots can find the sitemap file:
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
- Sitemap: <hostname>/sitemap_index.xml.gz
99
+ Image and Video Sitemaps
100
+ -----------
75
101
 
76
- The Sitemap URL in the robots file should be the complete URL to the Sitemap Index, such as <tt>http://www.example.org/sitemap_index.xml.gz</tt>
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
- Example 'config/sitemap.rb'
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 individual articles
104
- Article.find(:all).each do |a|
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 merchant path
109
- sitemap.add '/purchase', :priority => 0.7, :host => "https://www.example.com"
110
-
111
- # add all individual news with images
112
- News.all.each do |n|
113
- sitemap.add news_path(n), :lastmod => n.updated_at, :images=>n.images.collect{ |r| :loc=>r.image.url, :title=>r.image.name }
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, sitemap_generator version >= 0.2.5
163
- - **Rails** 1.x - 2.3.5
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
- - Support for generating sitemaps for sites with multiple domains. Sitemaps are generated into subdirectories and we use a Rack middleware to rewrite requests for sitemaps to the correct subdirectory based on the request host.
200
- - I want to refactor the code because it has grown a lot. Part of this refactoring will include implementing some more checks to make sure we adhere to standards as well as making sure that the sitemaps are being generated as efficiently as possible.
201
-
202
- I'd like to simplify adding links to a sitemap. Right now it's all or nothing. I'd like to break it up so you can add batches.
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
- [sitemap_protocol]:http://sitemaps.org/protocol.php
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
@@ -18,6 +18,7 @@ begin
18
18
  gem.test_files = []
19
19
  gem.add_development_dependency "rspec"
20
20
  gem.add_development_dependency "nokogiri"
21
+ gem.add_development_dependency "sqlite3-ruby"
21
22
  end
22
23
  Jeweler::GemcutterTasks.new
23
24
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
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
- version: 1.0.1
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-07-21 00:00:00 -07:00
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.6
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