big_sitemap 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/Gemfile +2 -14
- data/Gemfile.lock +25 -17
- data/History.txt +4 -0
- data/Rakefile +1 -16
- data/VERSION +1 -0
- data/big_sitemap.gemspec +13 -53
- data/lib/big_sitemap.rb +5 -4
- data/lib/big_sitemap/builder.rb +8 -16
- data/test/big_sitemap_test.rb +17 -65
- data/test/test_helper.rb +58 -0
- metadata +29 -24
- data/VERSION.yml +0 -5
data/.gitignore
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,27 +1,35 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
big_sitemap (1.0.1)
|
5
|
+
|
1
6
|
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
7
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
8
|
+
activesupport (3.2.3)
|
9
|
+
i18n (~> 0.6)
|
10
|
+
multi_json (~> 1.0)
|
11
|
+
bourne (1.1.2)
|
12
|
+
mocha (= 0.10.5)
|
13
|
+
i18n (0.6.0)
|
14
|
+
metaclass (0.0.1)
|
15
|
+
mocha (0.10.5)
|
16
|
+
metaclass (~> 0.0.1)
|
17
|
+
multi_json (1.3.4)
|
18
|
+
nokogiri (1.5.6)
|
19
|
+
shoulda (3.3.2)
|
20
|
+
shoulda-context (~> 1.0.1)
|
21
|
+
shoulda-matchers (~> 1.4.1)
|
22
|
+
shoulda-context (1.0.2)
|
23
|
+
shoulda-matchers (1.4.2)
|
24
|
+
activesupport (>= 3.0.0)
|
25
|
+
bourne (~> 1.1.2)
|
17
26
|
|
18
27
|
PLATFORMS
|
19
28
|
ruby
|
20
29
|
|
21
30
|
DEPENDENCIES
|
22
|
-
|
31
|
+
big_sitemap!
|
32
|
+
bundler
|
23
33
|
mocha
|
24
34
|
nokogiri
|
25
|
-
rake
|
26
|
-
rdoc
|
27
35
|
shoulda
|
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -1,19 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
begin
|
4
|
-
require 'jeweler'
|
5
|
-
Jeweler::Tasks.new do |s|
|
6
|
-
s.name = "big_sitemap"
|
7
|
-
s.summary = %Q{A Sitemap generator specifically designed for large sites (although it works equally well with small sites)}
|
8
|
-
s.email = %w(alexrabarts@gmail.com tobi@soundcloud.com)
|
9
|
-
s.homepage = "http://github.com/alexrabarts/big_sitemap"
|
10
|
-
s.description = "A Sitemap generator specifically designed for large sites (although it works equally well with small sites)"
|
11
|
-
s.authors = ["Alex Rabarts", "Tobias Bielohlawek"]
|
12
|
-
s.add_dependency 'bundler'
|
13
|
-
end
|
14
|
-
rescue LoadError
|
15
|
-
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
16
|
-
end
|
1
|
+
require 'bundler/gem_tasks'
|
17
2
|
|
18
3
|
require 'rdoc/task'
|
19
4
|
RDoc::Task.new do |rdoc|
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0.2
|
data/big_sitemap.gemspec
CHANGED
@@ -1,60 +1,20 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
5
3
|
|
6
4
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
9
|
-
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.
|
13
|
-
s.description
|
14
|
-
s.
|
15
|
-
s.
|
16
|
-
|
17
|
-
"README.rdoc"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
"Gemfile",
|
21
|
-
"Gemfile.lock",
|
22
|
-
"History.txt",
|
23
|
-
"LICENSE",
|
24
|
-
"README.rdoc",
|
25
|
-
"Rakefile",
|
26
|
-
"VERSION.yml",
|
27
|
-
"big_sitemap.gemspec",
|
28
|
-
"lib/big_sitemap.rb",
|
29
|
-
"lib/big_sitemap/builder.rb",
|
30
|
-
"test/big_sitemap_test.rb",
|
31
|
-
"test/fixtures/test_model.rb",
|
32
|
-
"test/test_helper.rb"
|
33
|
-
]
|
34
|
-
s.homepage = "http://github.com/alexrabarts/big_sitemap"
|
5
|
+
s.name = "big_sitemap"
|
6
|
+
s.version = File.read('VERSION').strip
|
7
|
+
s.authors = ["Alex Rabarts", "Tobias Bielohlawek"]
|
8
|
+
s.email = ["alexrabarts@gmail.com", "tobi@soundcloud.com"]
|
9
|
+
s.homepage = %q{http://github.com/alexrabarts/big_sitemap}
|
10
|
+
s.summary = %q{A Sitemap generator specifically designed for large sites (although it works equally well with small sites)}
|
11
|
+
s.description = %q{BigSitemap is a Sitemapgenerator suitable for applications with greater than 50,000 URLs. It splits large Sitemaps into multiple files, gzips the files to minimize bandwidth usage, batches database queries to minimize memory usage, supports increment updates, can be set up with just a few lines of code and is compatible with just about any framework.}
|
12
|
+
s.files = `git ls-files`.split("\n")
|
13
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
14
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
35
15
|
s.require_paths = ["lib"]
|
36
|
-
s.rubygems_version = "1.8.10"
|
37
|
-
s.summary = "A Sitemap generator specifically designed for large sites (although it works equally well with small sites)"
|
38
|
-
|
39
|
-
if s.respond_to? :specification_version then
|
40
|
-
s.specification_version = 3
|
41
16
|
|
42
|
-
|
43
|
-
|
44
|
-
s.add_runtime_dependency(%q<rdoc>, [">= 0"])
|
45
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
46
|
-
s.add_runtime_dependency(%q<bundler>, [">= 0"])
|
47
|
-
else
|
48
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
49
|
-
s.add_dependency(%q<rdoc>, [">= 0"])
|
50
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
51
|
-
s.add_dependency(%q<bundler>, [">= 0"])
|
52
|
-
end
|
53
|
-
else
|
54
|
-
s.add_dependency(%q<rake>, [">= 0"])
|
55
|
-
s.add_dependency(%q<rdoc>, [">= 0"])
|
56
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
57
|
-
s.add_dependency(%q<bundler>, [">= 0"])
|
17
|
+
["bundler", "shoulda", "mocha", "nokogiri"].each do |gem|
|
18
|
+
s.add_development_dependency *gem.split(' ')
|
58
19
|
end
|
59
20
|
end
|
60
|
-
|
data/lib/big_sitemap.rb
CHANGED
@@ -178,6 +178,7 @@ class BigSitemap
|
|
178
178
|
return self if Array(@paths).empty?
|
179
179
|
|
180
180
|
with_sitemap do |builder|
|
181
|
+
@paths.uniq!
|
181
182
|
@paths.each do |path, options|
|
182
183
|
url = URI.join(@options[:base_url], path)
|
183
184
|
builder.add_url! url, options
|
@@ -260,6 +261,9 @@ class BigSitemap
|
|
260
261
|
find_options[key] = options.delete(key)
|
261
262
|
end
|
262
263
|
|
264
|
+
# Keep the intial conditions for later user
|
265
|
+
conditions = find_options[:conditions]
|
266
|
+
|
263
267
|
primary_method = options.delete(:primary_column)
|
264
268
|
primary_column = "#{table_name(model)}.#{primary_method}"
|
265
269
|
|
@@ -287,7 +291,7 @@ class BigSitemap
|
|
287
291
|
if last_id && primary_column
|
288
292
|
find_options.update(:limit => limit, :offset => nil)
|
289
293
|
primary_column_value = escape_if_string last_id #escape '
|
290
|
-
find_options
|
294
|
+
find_options[:conditions] = [conditions, "(#{primary_column} > #{primary_column_value})"].compact.join(' AND ')
|
291
295
|
end
|
292
296
|
|
293
297
|
model.send(find_method, find_options).each do |record|
|
@@ -378,9 +382,6 @@ class BigSitemap
|
|
378
382
|
|
379
383
|
sitemap = if options[:type] == 'index'
|
380
384
|
IndexBuilder.new(options)
|
381
|
-
elsif options[:geo]
|
382
|
-
options[:filename] << '_kml'
|
383
|
-
GeoBuilder.new(options)
|
384
385
|
else
|
385
386
|
Builder.new(options)
|
386
387
|
end
|
data/lib/big_sitemap/builder.rb
CHANGED
@@ -4,10 +4,11 @@ require 'zlib'
|
|
4
4
|
class BigSitemap
|
5
5
|
class Builder
|
6
6
|
MAX_URLS = 50000
|
7
|
+
HEADER_NAME = 'urlset'
|
7
8
|
HEADER_ATTRIBUTES = {
|
8
9
|
'xmlns' => 'http://www.sitemaps.org/schemas/sitemap/0.9',
|
9
10
|
'xmlns:xsi' => "http://www.w3.org/2001/XMLSchema-instance",
|
10
|
-
'xsi:schemaLocation' => "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
|
11
|
+
'xsi:schemaLocation' => "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
|
11
12
|
}
|
12
13
|
|
13
14
|
def initialize(options)
|
@@ -75,11 +76,11 @@ class BigSitemap
|
|
75
76
|
@gzip ? ::Zlib::GzipWriter.new(file) : file
|
76
77
|
end
|
77
78
|
|
78
|
-
def _init_document
|
79
|
+
def _init_document
|
79
80
|
@urls = 0
|
80
81
|
target!.print '<?xml version="1.0" encoding="UTF-8"?>'
|
81
82
|
_newline
|
82
|
-
_open_tag
|
83
|
+
_open_tag self.class::HEADER_NAME, self.class::HEADER_ATTRIBUTES
|
83
84
|
end
|
84
85
|
|
85
86
|
def _rotate(part_nr=nil)
|
@@ -141,10 +142,10 @@ class BigSitemap
|
|
141
142
|
end
|
142
143
|
|
143
144
|
class IndexBuilder < Builder
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
145
|
+
HEADER_NAME = 'sitemapindex'
|
146
|
+
HEADER_ATTRIBUTES = {
|
147
|
+
'xmlns' => 'http://www.sitemaps.org/schemas/sitemap/0.9'
|
148
|
+
}
|
148
149
|
|
149
150
|
def add_url!(location, options={})
|
150
151
|
_open_tag 'sitemap'
|
@@ -156,14 +157,5 @@ class BigSitemap
|
|
156
157
|
end
|
157
158
|
end
|
158
159
|
|
159
|
-
class GeoBuilder < Builder
|
160
|
-
#_build_geo if @geo
|
161
|
-
|
162
|
-
# def _build_geo
|
163
|
-
# geo :geo do
|
164
|
-
# geo :format, 'kml'
|
165
|
-
# end
|
166
|
-
# end
|
167
|
-
end
|
168
160
|
|
169
161
|
end
|
data/test/big_sitemap_test.rb
CHANGED
@@ -75,7 +75,7 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
75
75
|
|
76
76
|
should 'contain two loc elements' do
|
77
77
|
generate_sitemap(:max_per_sitemap => 2) do
|
78
|
-
4.times { add
|
78
|
+
4.times { |i| add "/#{i}" }
|
79
79
|
end
|
80
80
|
|
81
81
|
assert_equal 2, num_elements(sitemaps_index_file, 'loc')
|
@@ -83,7 +83,7 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
83
83
|
|
84
84
|
should 'contain two lastmod elements' do
|
85
85
|
generate_sitemap(:max_per_sitemap => 2) do
|
86
|
-
4.times { add
|
86
|
+
4.times { |i| add "/#{i}" }
|
87
87
|
end
|
88
88
|
|
89
89
|
assert_equal 2, num_elements(sitemaps_index_file, 'lastmod')
|
@@ -103,7 +103,7 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
103
103
|
|
104
104
|
should 'contain several loc elements' do
|
105
105
|
generate_sitemap do
|
106
|
-
3.times { add
|
106
|
+
3.times { |i| add "/#{i}" }
|
107
107
|
end
|
108
108
|
|
109
109
|
assert_equal 3, num_elements(first_sitemap_file, 'loc')
|
@@ -111,7 +111,7 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
111
111
|
|
112
112
|
should 'contain several lastmod elements' do
|
113
113
|
generate_sitemap do
|
114
|
-
3.times { add
|
114
|
+
3.times { |i| add "/#{i}", :last_modified => Time.now }
|
115
115
|
end
|
116
116
|
|
117
117
|
assert_equal 3, num_elements(first_sitemap_file, 'lastmod')
|
@@ -119,7 +119,7 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
119
119
|
|
120
120
|
should 'contain several changefreq elements' do
|
121
121
|
generate_sitemap do
|
122
|
-
3.times { add
|
122
|
+
3.times { |i| add "/#{i}" }
|
123
123
|
end
|
124
124
|
|
125
125
|
assert_equal 3, num_elements(first_sitemap_file, 'changefreq')
|
@@ -127,7 +127,7 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
127
127
|
|
128
128
|
should 'contain several priority elements' do
|
129
129
|
generate_sitemap do
|
130
|
-
3.times { add
|
130
|
+
3.times { |i| add "/#{i}", :priority => 0.2 }
|
131
131
|
end
|
132
132
|
|
133
133
|
assert_equal 3, num_elements(first_sitemap_file, 'priority')
|
@@ -153,7 +153,7 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
153
153
|
|
154
154
|
should 'contain two loc element' do
|
155
155
|
generate_sitemap(:max_per_sitemap => 2) do
|
156
|
-
4.times { add
|
156
|
+
4.times { |i| add "/#{i}" }
|
157
157
|
end
|
158
158
|
|
159
159
|
assert_equal 2, num_elements(first_sitemap_file, 'loc')
|
@@ -162,7 +162,7 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
162
162
|
|
163
163
|
should 'contain two changefreq elements' do
|
164
164
|
generate_sitemap(:max_per_sitemap => 2) do
|
165
|
-
4.times { add
|
165
|
+
4.times { |i| add "/#{i}" }
|
166
166
|
end
|
167
167
|
|
168
168
|
assert_equal 2, num_elements(first_sitemap_file, 'changefreq')
|
@@ -171,7 +171,7 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
171
171
|
|
172
172
|
should 'contain two priority element' do
|
173
173
|
generate_sitemap(:max_per_sitemap => 2) do
|
174
|
-
4.times { add
|
174
|
+
4.times { |i| add "/#{i}", :priority => 0.2 }
|
175
175
|
end
|
176
176
|
|
177
177
|
assert_equal 2, num_elements(first_sitemap_file, 'priority')
|
@@ -182,6 +182,14 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
182
182
|
generate_sitemap(:gzip => false) { add '/' }
|
183
183
|
assert File.exists?(unzipped_first_sitemap_file)
|
184
184
|
end
|
185
|
+
|
186
|
+
should 'contain unique elements' do
|
187
|
+
generate_sitemap do
|
188
|
+
2.times { add '/' }
|
189
|
+
end
|
190
|
+
|
191
|
+
assert_equal 1, num_elements(first_sitemap_file, 'url')
|
192
|
+
end
|
185
193
|
end
|
186
194
|
|
187
195
|
context 'sanatize XML chars' do
|
@@ -336,60 +344,4 @@ class BigSitemapTest < Test::Unit::TestCase
|
|
336
344
|
end
|
337
345
|
end
|
338
346
|
|
339
|
-
private
|
340
|
-
def generate_sitemap(options={}, &block)
|
341
|
-
BigSitemap.generate(options.merge(:base_url => 'http://example.com', :document_root => tmp_dir), &block)
|
342
|
-
end
|
343
|
-
|
344
|
-
def delete_tmp_files
|
345
|
-
Dir["#{sitemaps_dir}/sitemap*"].each do |f|
|
346
|
-
FileUtils.rm_rf f
|
347
|
-
end
|
348
|
-
end
|
349
|
-
|
350
|
-
def sitemaps_index_file
|
351
|
-
"#{unzipped_sitemaps_index_file}.gz"
|
352
|
-
end
|
353
|
-
|
354
|
-
def unzipped_sitemaps_index_file
|
355
|
-
"#{sitemaps_dir}/sitemap_index.xml"
|
356
|
-
end
|
357
|
-
|
358
|
-
def unzipped_first_sitemap_file
|
359
|
-
"#{sitemaps_dir}/sitemap.xml"
|
360
|
-
end
|
361
|
-
|
362
|
-
def first_sitemap_file
|
363
|
-
"#{sitemaps_dir}/sitemap.xml.gz"
|
364
|
-
end
|
365
|
-
|
366
|
-
def second_sitemap_file
|
367
|
-
"#{sitemaps_dir}/sitemap_1.xml.gz"
|
368
|
-
end
|
369
|
-
|
370
|
-
def third_sitemap_file
|
371
|
-
"#{sitemaps_dir}/sitemap_2.xml.gz"
|
372
|
-
end
|
373
|
-
|
374
|
-
def sitemaps_dir
|
375
|
-
tmp_dir
|
376
|
-
end
|
377
|
-
|
378
|
-
def tmp_dir
|
379
|
-
'/tmp'
|
380
|
-
end
|
381
|
-
|
382
|
-
def ns
|
383
|
-
{'s' => 'http://www.sitemaps.org/schemas/sitemap/0.9'}
|
384
|
-
end
|
385
|
-
|
386
|
-
def elements(filename, el)
|
387
|
-
file_class = filename.include?('.gz') ? Zlib::GzipReader : File
|
388
|
-
data = Nokogiri::XML.parse(file_class.open(filename).read)
|
389
|
-
data.search("//s:#{el}", ns)
|
390
|
-
end
|
391
|
-
|
392
|
-
def num_elements(filename, el)
|
393
|
-
elements(filename, el).size
|
394
|
-
end
|
395
347
|
end
|
data/test/test_helper.rb
CHANGED
@@ -9,4 +9,62 @@ require 'test/fixtures/test_model'
|
|
9
9
|
require 'big_sitemap'
|
10
10
|
|
11
11
|
class Test::Unit::TestCase
|
12
|
+
|
13
|
+
#TestHelper
|
14
|
+
private
|
15
|
+
def generate_sitemap(options={}, &block)
|
16
|
+
BigSitemap.generate(options.merge(:base_url => 'http://example.com', :document_root => tmp_dir), &block)
|
17
|
+
end
|
18
|
+
|
19
|
+
def delete_tmp_files
|
20
|
+
Dir["#{sitemaps_dir}/sitemap*"].each do |f|
|
21
|
+
FileUtils.rm_rf f
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def sitemaps_index_file
|
26
|
+
"#{unzipped_sitemaps_index_file}.gz"
|
27
|
+
end
|
28
|
+
|
29
|
+
def unzipped_sitemaps_index_file
|
30
|
+
"#{sitemaps_dir}/sitemap_index.xml"
|
31
|
+
end
|
32
|
+
|
33
|
+
def unzipped_first_sitemap_file
|
34
|
+
"#{sitemaps_dir}/sitemap.xml"
|
35
|
+
end
|
36
|
+
|
37
|
+
def first_sitemap_file
|
38
|
+
"#{sitemaps_dir}/sitemap.xml.gz"
|
39
|
+
end
|
40
|
+
|
41
|
+
def second_sitemap_file
|
42
|
+
"#{sitemaps_dir}/sitemap_1.xml.gz"
|
43
|
+
end
|
44
|
+
|
45
|
+
def third_sitemap_file
|
46
|
+
"#{sitemaps_dir}/sitemap_2.xml.gz"
|
47
|
+
end
|
48
|
+
|
49
|
+
def sitemaps_dir
|
50
|
+
tmp_dir
|
51
|
+
end
|
52
|
+
|
53
|
+
def tmp_dir
|
54
|
+
'/tmp'
|
55
|
+
end
|
56
|
+
|
57
|
+
def ns
|
58
|
+
{'s' => 'http://www.sitemaps.org/schemas/sitemap/0.9'}
|
59
|
+
end
|
60
|
+
|
61
|
+
def elements(filename, el)
|
62
|
+
file_class = filename.include?('.gz') ? Zlib::GzipReader : File
|
63
|
+
data = Nokogiri::XML.parse(file_class.open(filename).read)
|
64
|
+
data.search("//s:#{el}", ns)
|
65
|
+
end
|
66
|
+
|
67
|
+
def num_elements(filename, el)
|
68
|
+
elements(filename, el).size
|
69
|
+
end
|
12
70
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: big_sitemap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,33 +10,33 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2013-02-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
17
|
-
requirement: &
|
16
|
+
name: bundler
|
17
|
+
requirement: &70198116635740 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '0'
|
23
|
-
type: :
|
23
|
+
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70198116635740
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
|
-
name:
|
28
|
-
requirement: &
|
27
|
+
name: shoulda
|
28
|
+
requirement: &70198116635220 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
|
-
type: :
|
34
|
+
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70198116635220
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
39
|
-
requirement: &
|
38
|
+
name: mocha
|
39
|
+
requirement: &70198116634760 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,36 +44,38 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70198116634760
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
50
|
-
requirement: &
|
49
|
+
name: nokogiri
|
50
|
+
requirement: &70198116634240 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
|
-
type: :
|
56
|
+
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
59
|
-
description:
|
60
|
-
|
58
|
+
version_requirements: *70198116634240
|
59
|
+
description: BigSitemap is a Sitemapgenerator suitable for applications with greater
|
60
|
+
than 50,000 URLs. It splits large Sitemaps into multiple files, gzips the files
|
61
|
+
to minimize bandwidth usage, batches database queries to minimize memory usage,
|
62
|
+
supports increment updates, can be set up with just a few lines of code and is compatible
|
63
|
+
with just about any framework.
|
61
64
|
email:
|
62
65
|
- alexrabarts@gmail.com
|
63
66
|
- tobi@soundcloud.com
|
64
67
|
executables: []
|
65
68
|
extensions: []
|
66
|
-
extra_rdoc_files:
|
67
|
-
- LICENSE
|
68
|
-
- README.rdoc
|
69
|
+
extra_rdoc_files: []
|
69
70
|
files:
|
71
|
+
- .gitignore
|
70
72
|
- Gemfile
|
71
73
|
- Gemfile.lock
|
72
74
|
- History.txt
|
73
75
|
- LICENSE
|
74
76
|
- README.rdoc
|
75
77
|
- Rakefile
|
76
|
-
- VERSION
|
78
|
+
- VERSION
|
77
79
|
- big_sitemap.gemspec
|
78
80
|
- lib/big_sitemap.rb
|
79
81
|
- lib/big_sitemap/builder.rb
|
@@ -105,4 +107,7 @@ signing_key:
|
|
105
107
|
specification_version: 3
|
106
108
|
summary: A Sitemap generator specifically designed for large sites (although it works
|
107
109
|
equally well with small sites)
|
108
|
-
test_files:
|
110
|
+
test_files:
|
111
|
+
- test/big_sitemap_test.rb
|
112
|
+
- test/fixtures/test_model.rb
|
113
|
+
- test/test_helper.rb
|