sitemap_generator 4.3.1 → 5.0.0.beta
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/README.md +37 -21
- data/VERSION +1 -1
- data/lib/sitemap_generator/adapters/file_adapter.rb +23 -1
- data/lib/sitemap_generator/builder/sitemap_file.rb +1 -10
- data/lib/sitemap_generator/builder/sitemap_index_file.rb +0 -8
- data/lib/sitemap_generator/link_set.rb +50 -66
- data/lib/sitemap_generator/sitemap_location.rb +62 -13
- data/lib/sitemap_generator/sitemap_namer.rb +10 -66
- data/spec/files/sitemap.groups.rb +3 -3
- data/spec/sitemap_generator/builder/sitemap_file_spec.rb +1 -1
- data/spec/sitemap_generator/builder/sitemap_url_spec.rb +2 -2
- data/spec/sitemap_generator/file_adaptor_spec.rb +20 -0
- data/spec/sitemap_generator/link_set_spec.rb +69 -59
- data/spec/sitemap_generator/sitemap_generator_spec.rb +93 -37
- data/spec/sitemap_generator/sitemap_location_spec.rb +59 -17
- data/spec/sitemap_generator/sitemap_namer_spec.rb +0 -70
- metadata +15 -13
- data/spec/files/sitemap.deprecated.rb +0 -15
@@ -1,66 +1,6 @@
|
|
1
1
|
module SitemapGenerator
|
2
|
-
# A class for generating sitemap
|
3
|
-
# Deprecated. Rather use the <tt>SitemapGenerator::SimpleNamer</tt> class and the
|
4
|
-
# +namer+ option on your sitemap object.
|
2
|
+
# A class for generating sitemap filenames.
|
5
3
|
#
|
6
|
-
# === Example
|
7
|
-
# namer = SitemapNamer.new(:sitemap)
|
8
|
-
# namer.to_s => 'sitemap1.xml.gz'
|
9
|
-
# namer.next.to_s => 'sitemap2.xml.gz'
|
10
|
-
class SitemapNamer
|
11
|
-
NameError = Class.new(StandardError)
|
12
|
-
|
13
|
-
# Params:
|
14
|
-
# base - string or symbol that forms the base of the generated filename
|
15
|
-
#
|
16
|
-
# Options include:
|
17
|
-
# :extension - Default: '.xml.gz'. File extension to append.
|
18
|
-
# :start - Default: 1. Numerical index at which to start counting.
|
19
|
-
def initialize(base, options={});
|
20
|
-
@options = SitemapGenerator::Utilities.reverse_merge(options,
|
21
|
-
:extension => '.xml.gz',
|
22
|
-
:start => 1
|
23
|
-
)
|
24
|
-
@base = base
|
25
|
-
reset
|
26
|
-
end
|
27
|
-
|
28
|
-
def to_s
|
29
|
-
"#{@base}#{@count}#{@options[:extension]}"
|
30
|
-
end
|
31
|
-
|
32
|
-
# Increment count and return self
|
33
|
-
def next
|
34
|
-
@count += 1
|
35
|
-
self
|
36
|
-
end
|
37
|
-
|
38
|
-
# Decrement count and return self
|
39
|
-
def previous
|
40
|
-
raise NameError, "Already at the start of the series" if start?
|
41
|
-
@count -= 1
|
42
|
-
self
|
43
|
-
end
|
44
|
-
|
45
|
-
# Reset count to the starting index
|
46
|
-
def reset
|
47
|
-
@count = @options[:start]
|
48
|
-
end
|
49
|
-
|
50
|
-
def start?
|
51
|
-
@count <= @options[:start]
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
# A Namer for Sitemap Indexes.
|
56
|
-
# Deprecated. Rather use the <tt>SitemapGenerator::SimpleNamer</tt> class and the
|
57
|
-
# +namer+ option on your sitemap object.
|
58
|
-
class SitemapIndexNamer < SitemapNamer
|
59
|
-
def to_s
|
60
|
-
"#{@base}#{@options[:extension]}"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
4
|
# The SimpleNamer uses the same namer instance for the sitemap index and the sitemaps.
|
65
5
|
# If no index is needed, the first sitemap gets the first name. However, if
|
66
6
|
# an index is needed, the index gets the first name.
|
@@ -85,16 +25,20 @@ module SitemapGenerator
|
|
85
25
|
# the first name. Thereafter, the numerical index defined by +start+
|
86
26
|
# is used, and subsequent names would be 'sitemap1.xml.gz', 'sitemap2.xml.gz', etc.
|
87
27
|
# In these examples the `base` string is assumed to be 'sitemap'.
|
88
|
-
class SimpleNamer
|
28
|
+
class SimpleNamer
|
89
29
|
def initialize(base, options={})
|
90
|
-
|
91
|
-
:zero => nil
|
30
|
+
@options = SitemapGenerator::Utilities.reverse_merge(options,
|
31
|
+
:zero => nil, # identifies the marker for the start of the series
|
32
|
+
:extension => '.xml.gz',
|
33
|
+
:start => 1
|
92
34
|
)
|
93
|
-
|
35
|
+
@base = base
|
36
|
+
reset
|
94
37
|
end
|
95
38
|
|
96
39
|
def to_s
|
97
|
-
|
40
|
+
extension = @options[:extension]
|
41
|
+
"#{@base}#{@count}#{extension}"
|
98
42
|
end
|
99
43
|
|
100
44
|
# Reset to the first name
|
@@ -14,15 +14,15 @@ SitemapGenerator::Sitemap.create(
|
|
14
14
|
add '/three'
|
15
15
|
end
|
16
16
|
|
17
|
-
# Test a
|
18
|
-
group(:
|
17
|
+
# Test a simple namer.
|
18
|
+
group(:namer => SitemapGenerator::SimpleNamer.new(:abc, :start => 4, :zero => 3)) do
|
19
19
|
add '/four'
|
20
20
|
add '/five'
|
21
21
|
add '/six'
|
22
22
|
end
|
23
23
|
|
24
24
|
# Test a simple namer
|
25
|
-
group(:
|
25
|
+
group(:namer => SitemapGenerator::SimpleNamer.new(:def)) do
|
26
26
|
add '/four'
|
27
27
|
add '/five'
|
28
28
|
add '/six'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'SitemapGenerator::Builder::SitemapFile' do
|
4
|
-
let(:location) { SitemapGenerator::SitemapLocation.new(:namer => SitemapGenerator::
|
4
|
+
let(:location) { SitemapGenerator::SitemapLocation.new(:namer => SitemapGenerator::SimpleNamer.new(:sitemap, :start => 2, :zero => 1), :public_path => 'tmp/', :sitemaps_path => 'test/', :host => 'http://example.com/') }
|
5
5
|
let(:sitemap) { SitemapGenerator::Builder::SitemapFile.new(location) }
|
6
6
|
|
7
7
|
it "should have a default namer" do
|
@@ -6,7 +6,7 @@ describe SitemapGenerator::Builder::SitemapUrl do
|
|
6
6
|
:sitemaps_path => 'sitemaps/',
|
7
7
|
:public_path => '/public',
|
8
8
|
:host => 'http://test.com',
|
9
|
-
:namer => SitemapGenerator::
|
9
|
+
:namer => SitemapGenerator::SimpleNamer.new(:sitemap)
|
10
10
|
)}
|
11
11
|
let(:sitemap_file) { SitemapGenerator::Builder::SitemapFile.new(loc) }
|
12
12
|
|
@@ -19,7 +19,7 @@ describe SitemapGenerator::Builder::SitemapUrl do
|
|
19
19
|
|
20
20
|
it "should build urls for sitemap files" do
|
21
21
|
url = SitemapGenerator::Builder::SitemapUrl.new(sitemap_file)
|
22
|
-
url[:loc].should == 'http://test.com/sitemaps/
|
22
|
+
url[:loc].should == 'http://test.com/sitemaps/sitemap.xml.gz'
|
23
23
|
end
|
24
24
|
|
25
25
|
it "lastmod should default to the last modified date for sitemap files" do
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "SitemapGenerator::FileAdapter" do
|
4
|
+
let(:location) { SitemapGenerator::SitemapLocation.new }
|
5
|
+
let(:adapter) { SitemapGenerator::FileAdapter.new }
|
6
|
+
|
7
|
+
describe "write" do
|
8
|
+
it "should gzip contents if filename ends in .gz" do
|
9
|
+
adapter.expects(:gzip).once
|
10
|
+
location.stubs(:filename).returns('sitemap.xml.gz')
|
11
|
+
adapter.write(location, 'data')
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should not gzip contents if filename does not end in .gz" do
|
15
|
+
adapter.expects(:plain).once
|
16
|
+
location.stubs(:filename).returns('sitemap.xml')
|
17
|
+
adapter.write(location, 'data')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -41,7 +41,7 @@ describe SitemapGenerator::LinkSet do
|
|
41
41
|
ls = SitemapGenerator::LinkSet.new(:default_host => default_host, :include_root => true, :include_index => true)
|
42
42
|
ls.include_root.should be_true
|
43
43
|
ls.include_index.should be_true
|
44
|
-
ls.
|
44
|
+
ls.create { |sitemap| }
|
45
45
|
ls.sitemap.link_count.should == 2
|
46
46
|
end
|
47
47
|
|
@@ -49,7 +49,7 @@ describe SitemapGenerator::LinkSet do
|
|
49
49
|
ls = SitemapGenerator::LinkSet.new(:default_host => default_host, :include_root => false)
|
50
50
|
ls.include_root.should be_false
|
51
51
|
ls.include_index.should be_false
|
52
|
-
ls.
|
52
|
+
ls.create { |sitemap| }
|
53
53
|
ls.sitemap.link_count.should == 0
|
54
54
|
end
|
55
55
|
|
@@ -57,7 +57,7 @@ describe SitemapGenerator::LinkSet do
|
|
57
57
|
ls = SitemapGenerator::LinkSet.new(:default_host => default_host, :include_index => false)
|
58
58
|
ls.include_root.should be_true
|
59
59
|
ls.include_index.should be_false
|
60
|
-
ls.
|
60
|
+
ls.create { |sitemap| }
|
61
61
|
ls.sitemap.link_count.should == 1
|
62
62
|
end
|
63
63
|
|
@@ -65,7 +65,7 @@ describe SitemapGenerator::LinkSet do
|
|
65
65
|
ls = SitemapGenerator::LinkSet.new(:default_host => default_host, :include_root => false, :include_index => false)
|
66
66
|
ls.include_root.should be_false
|
67
67
|
ls.include_index.should be_false
|
68
|
-
ls.
|
68
|
+
ls.create { |sitemap| }
|
69
69
|
ls.sitemap.link_count.should == 0
|
70
70
|
end
|
71
71
|
end
|
@@ -208,8 +208,8 @@ describe SitemapGenerator::LinkSet do
|
|
208
208
|
let(:ls) { SitemapGenerator::LinkSet.new(:default_host => default_host, :verbose => true, :create_index => true) }
|
209
209
|
|
210
210
|
it "should output summary lines" do
|
211
|
-
ls.sitemap.expects(:summary)
|
212
|
-
ls.sitemap_index.expects(:summary)
|
211
|
+
ls.sitemap.location.expects(:summary)
|
212
|
+
ls.sitemap_index.location.expects(:summary)
|
213
213
|
ls.finalize!
|
214
214
|
end
|
215
215
|
end
|
@@ -365,22 +365,22 @@ describe SitemapGenerator::LinkSet do
|
|
365
365
|
ls.group(:sitemaps_host => 'http://test.com') {}
|
366
366
|
end
|
367
367
|
|
368
|
-
it "should use the same
|
368
|
+
it "should use the same namer" do
|
369
369
|
@group = ls.group(:sitemaps_host => 'http://test.com') {}
|
370
370
|
@group.sitemap.location.namer.should == ls.sitemap.location.namer
|
371
371
|
end
|
372
372
|
end
|
373
373
|
|
374
|
-
describe "
|
374
|
+
describe "namer" do
|
375
375
|
it "should inherit the value" do
|
376
|
-
ls.group.
|
377
|
-
ls.group.sitemap.location.namer.should == ls.
|
376
|
+
ls.group.namer.should == ls.namer
|
377
|
+
ls.group.sitemap.location.namer.should == ls.namer
|
378
378
|
end
|
379
379
|
|
380
380
|
it "should set the value" do
|
381
|
-
namer = SitemapGenerator::
|
382
|
-
group = ls.group(:
|
383
|
-
group.
|
381
|
+
namer = SitemapGenerator::SimpleNamer.new(:xxx)
|
382
|
+
group = ls.group(:namer => namer)
|
383
|
+
group.namer.should == namer
|
384
384
|
group.sitemap.location.namer.should == namer
|
385
385
|
group.sitemap.location.filename.should =~ /xxx/
|
386
386
|
end
|
@@ -412,7 +412,7 @@ describe SitemapGenerator::LinkSet do
|
|
412
412
|
:filename => :xxx,
|
413
413
|
:sitemaps_path => 'en/',
|
414
414
|
:filename => :example,
|
415
|
-
:
|
415
|
+
:namer => SitemapGenerator::SimpleNamer.new(:sitemap)
|
416
416
|
}.each do |key, value|
|
417
417
|
it "if #{key} is present" do
|
418
418
|
ls.group(key => value).sitemap.should_not == ls.sitemap
|
@@ -434,7 +434,8 @@ describe SitemapGenerator::LinkSet do
|
|
434
434
|
|
435
435
|
{:sitemaps_path => 'en/',
|
436
436
|
:filename => :example,
|
437
|
-
:
|
437
|
+
:namer => SitemapGenerator::SimpleNamer.new(:sitemap)
|
438
|
+
}.each do |k, v|
|
438
439
|
|
439
440
|
it "should not finalize the sitemap if #{k} is present" do
|
440
441
|
ls.expects(:finalize_sitemap!).never
|
@@ -524,30 +525,30 @@ describe SitemapGenerator::LinkSet do
|
|
524
525
|
ls.sitemap.location.host.should == host
|
525
526
|
end
|
526
527
|
|
527
|
-
it "should set the
|
528
|
-
namer = SitemapGenerator::
|
529
|
-
ls.create(:
|
530
|
-
ls.
|
528
|
+
it "should set the namer" do
|
529
|
+
namer = SitemapGenerator::SimpleNamer.new(:xxx)
|
530
|
+
ls.create(:namer => namer)
|
531
|
+
ls.namer.should == namer
|
531
532
|
ls.sitemap.location.namer.should == namer
|
532
533
|
ls.sitemap.location.filename.should =~ /xxx/
|
533
534
|
end
|
534
535
|
|
535
|
-
it "should support both
|
536
|
-
namer = SitemapGenerator::
|
537
|
-
ls.create(:
|
538
|
-
ls.
|
536
|
+
it "should support both namer and filename options" do
|
537
|
+
namer = SitemapGenerator::SimpleNamer.new("sitemap2")
|
538
|
+
ls.create(:namer => namer, :filename => "sitemap1")
|
539
|
+
ls.namer.should == namer
|
539
540
|
ls.sitemap.location.namer.should == namer
|
540
|
-
ls.sitemap.location.filename.should =~ /
|
541
|
-
ls.sitemap_index.location.filename.should =~ /^
|
541
|
+
ls.sitemap.location.filename.should =~ /^sitemap2/
|
542
|
+
ls.sitemap_index.location.filename.should =~ /^sitemap2/
|
542
543
|
end
|
543
544
|
|
544
|
-
it "should support both
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
545
|
+
it "should support both namer and filename options no matter the order" do
|
546
|
+
options = {
|
547
|
+
:namer => SitemapGenerator::SimpleNamer.new('sitemap1'),
|
548
|
+
:filename => 'sitemap2'
|
549
|
+
}
|
549
550
|
ls.create(options)
|
550
|
-
ls.sitemap.location.filename.should =~ /
|
551
|
+
ls.sitemap.location.filename.should =~ /^sitemap1/
|
551
552
|
ls.sitemap_index.location.filename.should =~ /^sitemap1/
|
552
553
|
end
|
553
554
|
|
@@ -574,13 +575,6 @@ describe SitemapGenerator::LinkSet do
|
|
574
575
|
SitemapGenerator::Sitemap.create(:default_host => 'http://cnn.com')
|
575
576
|
SitemapGenerator::Sitemap.instance_variable_set(:@added_default_links, false)
|
576
577
|
end
|
577
|
-
|
578
|
-
it "should reset the deprecated sitemaps_namer, if set" do
|
579
|
-
ls.sitemaps_namer = stub(:reset => nil)
|
580
|
-
ls.sitemaps_namer.expects(:reset)
|
581
|
-
ls.send(:reset!)
|
582
|
-
end
|
583
|
-
|
584
578
|
end
|
585
579
|
|
586
580
|
describe "include_root?" do
|
@@ -668,26 +662,6 @@ describe SitemapGenerator::LinkSet do
|
|
668
662
|
end
|
669
663
|
end
|
670
664
|
|
671
|
-
describe "add_links" do
|
672
|
-
it "should not change the value of yield_sitemap" do
|
673
|
-
ls.stubs(:create)
|
674
|
-
ls.yield_sitemap = false
|
675
|
-
ls.add_links
|
676
|
-
ls.yield_sitemap.should be_false
|
677
|
-
ls.yield_sitemap = true
|
678
|
-
ls.add_links
|
679
|
-
ls.yield_sitemap.should be_true
|
680
|
-
end
|
681
|
-
|
682
|
-
it "should always yield the sitemap instance" do
|
683
|
-
ls.send(:interpreter).expects(:eval).with(:yield_sitemap => true).twice
|
684
|
-
ls.yield_sitemap = false
|
685
|
-
ls.add_links
|
686
|
-
ls.yield_sitemap = true
|
687
|
-
ls.add_links
|
688
|
-
end
|
689
|
-
end
|
690
|
-
|
691
665
|
describe "add" do
|
692
666
|
it "should not modify the options hash" do
|
693
667
|
options = { :host => 'http://newhost.com' }
|
@@ -745,7 +719,7 @@ describe SitemapGenerator::LinkSet do
|
|
745
719
|
end
|
746
720
|
|
747
721
|
describe "create_index" do
|
748
|
-
let(:location) { SitemapGenerator::SitemapLocation.new(:namer => SitemapGenerator::
|
722
|
+
let(:location) { SitemapGenerator::SitemapLocation.new(:namer => SitemapGenerator::SimpleNamer.new(:sitemap), :public_path => 'tmp/', :sitemaps_path => 'test/', :host => 'http://example.com/') }
|
749
723
|
let(:sitemap) { SitemapGenerator::Builder::SitemapFile.new(location) }
|
750
724
|
|
751
725
|
describe "when false" do
|
@@ -851,4 +825,40 @@ describe SitemapGenerator::LinkSet do
|
|
851
825
|
ls.send(:finalize_sitemap!)
|
852
826
|
end
|
853
827
|
end
|
828
|
+
|
829
|
+
describe "compress" do
|
830
|
+
it "should be true by default" do
|
831
|
+
ls.compress.should be_true
|
832
|
+
end
|
833
|
+
|
834
|
+
it "should be set on the location objects" do
|
835
|
+
ls.sitemap.location[:compress].should be_true
|
836
|
+
ls.sitemap_index.location[:compress].should be_true
|
837
|
+
end
|
838
|
+
|
839
|
+
it "should be settable and gettable" do
|
840
|
+
ls.compress = false
|
841
|
+
ls.compress.should be_false
|
842
|
+
ls.compress = :all_but_first
|
843
|
+
ls.compress.should == :all_but_first
|
844
|
+
end
|
845
|
+
|
846
|
+
it "should update the location objects when set" do
|
847
|
+
ls.compress = false
|
848
|
+
ls.sitemap.location[:compress].should be_false
|
849
|
+
ls.sitemap_index.location[:compress].should be_false
|
850
|
+
end
|
851
|
+
|
852
|
+
describe "in groups" do
|
853
|
+
it "should inherit the current compress setting" do
|
854
|
+
ls.compress = false
|
855
|
+
ls.group.compress.should be_false
|
856
|
+
end
|
857
|
+
|
858
|
+
it "should set the compress value" do
|
859
|
+
group = ls.group(:compress => false)
|
860
|
+
group.compress.should be_false
|
861
|
+
end
|
862
|
+
end
|
863
|
+
end
|
854
864
|
end
|
@@ -41,43 +41,6 @@ describe "SitemapGenerator" do
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
describe "generate sitemap with deprecated config" do
|
45
|
-
before :all do
|
46
|
-
SitemapGenerator::Sitemap.reset!
|
47
|
-
clean_sitemap_files_from_rails_app
|
48
|
-
copy_sitemap_file_to_rails_app(:deprecated)
|
49
|
-
with_max_links(10) { execute_sitemap_config }
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should create sitemaps" do
|
53
|
-
file_should_exist(rails_path('public/sitemap_index.xml.gz'))
|
54
|
-
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
55
|
-
file_should_exist(rails_path('public/sitemap2.xml.gz'))
|
56
|
-
file_should_not_exist(rails_path('public/sitemap3.xml.gz'))
|
57
|
-
end
|
58
|
-
|
59
|
-
it "should have 13 links" do
|
60
|
-
SitemapGenerator::Sitemap.link_count.should == 13
|
61
|
-
end
|
62
|
-
|
63
|
-
it "index XML should validate" do
|
64
|
-
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap_index.xml.gz'), 'siteindex'
|
65
|
-
end
|
66
|
-
|
67
|
-
it "sitemap XML should validate" do
|
68
|
-
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap1.xml.gz'), 'sitemap'
|
69
|
-
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap2.xml.gz'), 'sitemap'
|
70
|
-
end
|
71
|
-
|
72
|
-
it "index XML should not have excess whitespace" do
|
73
|
-
gzipped_xml_file_should_have_minimal_whitespace rails_path('public/sitemap_index.xml.gz')
|
74
|
-
end
|
75
|
-
|
76
|
-
it "sitemap XML should not have excess whitespace" do
|
77
|
-
gzipped_xml_file_should_have_minimal_whitespace rails_path('public/sitemap1.xml.gz')
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
44
|
describe "generate sitemap with normal config" do
|
82
45
|
before :all do
|
83
46
|
SitemapGenerator::Sitemap.reset!
|
@@ -493,6 +456,99 @@ describe "SitemapGenerator" do
|
|
493
456
|
end
|
494
457
|
end
|
495
458
|
|
459
|
+
describe "compress" do
|
460
|
+
let(:ls) { SitemapGenerator::LinkSet.new(:default_host => 'http://test.local', :include_root => false) }
|
461
|
+
|
462
|
+
before :each do
|
463
|
+
clean_sitemap_files_from_rails_app
|
464
|
+
end
|
465
|
+
|
466
|
+
describe "when false" do
|
467
|
+
before :each do
|
468
|
+
ls.compress = false
|
469
|
+
end
|
470
|
+
|
471
|
+
it "should not compress files" do
|
472
|
+
with_max_links(1) do
|
473
|
+
ls.create do
|
474
|
+
add('/one')
|
475
|
+
add('/two')
|
476
|
+
group(:filename => :group) {
|
477
|
+
add('/group1')
|
478
|
+
add('/group2')
|
479
|
+
}
|
480
|
+
end
|
481
|
+
end
|
482
|
+
file_should_exist(rails_path('public/sitemap.xml'))
|
483
|
+
file_should_exist(rails_path('public/sitemap1.xml'))
|
484
|
+
file_should_exist(rails_path('public/group.xml'))
|
485
|
+
file_should_exist(rails_path('public/group1.xml'))
|
486
|
+
end
|
487
|
+
end
|
488
|
+
|
489
|
+
describe "when :all_but_first" do
|
490
|
+
before :each do
|
491
|
+
ls.compress = :all_but_first
|
492
|
+
end
|
493
|
+
|
494
|
+
it "should not compress first file" do
|
495
|
+
with_max_links(1) do
|
496
|
+
ls.create do
|
497
|
+
add('/one')
|
498
|
+
add('/two')
|
499
|
+
add('/three')
|
500
|
+
group(:filename => :group) {
|
501
|
+
add('/group1')
|
502
|
+
add('/group2')
|
503
|
+
}
|
504
|
+
group(:filename => :group2, :compress => true) {
|
505
|
+
add('/group1')
|
506
|
+
add('/group2')
|
507
|
+
}
|
508
|
+
group(:filename => :group2, :compress => false) {
|
509
|
+
add('/group1')
|
510
|
+
add('/group2')
|
511
|
+
}
|
512
|
+
end
|
513
|
+
end
|
514
|
+
file_should_exist(rails_path('public/sitemap.xml'))
|
515
|
+
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
516
|
+
file_should_exist(rails_path('public/sitemap2.xml.gz'))
|
517
|
+
file_should_exist(rails_path('public/group.xml'))
|
518
|
+
file_should_exist(rails_path('public/group1.xml.gz'))
|
519
|
+
file_should_exist(rails_path('public/group2.xml.gz'))
|
520
|
+
file_should_exist(rails_path('public/group21.xml.gz'))
|
521
|
+
end
|
522
|
+
end
|
523
|
+
|
524
|
+
describe "in groups" do
|
525
|
+
it "should respect passed in compress option" do
|
526
|
+
with_max_links(1) do
|
527
|
+
ls.create do
|
528
|
+
group(:filename => :group1, :compress => :all_but_first) {
|
529
|
+
add('/group1')
|
530
|
+
add('/group2')
|
531
|
+
}
|
532
|
+
group(:filename => :group2, :compress => true) {
|
533
|
+
add('/group1')
|
534
|
+
add('/group2')
|
535
|
+
}
|
536
|
+
group(:filename => :group3, :compress => false) {
|
537
|
+
add('/group1')
|
538
|
+
add('/group2')
|
539
|
+
}
|
540
|
+
end
|
541
|
+
end
|
542
|
+
file_should_exist(rails_path('public/group1.xml'))
|
543
|
+
file_should_exist(rails_path('public/group11.xml.gz'))
|
544
|
+
file_should_exist(rails_path('public/group2.xml.gz'))
|
545
|
+
file_should_exist(rails_path('public/group21.xml.gz'))
|
546
|
+
file_should_exist(rails_path('public/group3.xml'))
|
547
|
+
file_should_exist(rails_path('public/group31.xml'))
|
548
|
+
end
|
549
|
+
end
|
550
|
+
end
|
551
|
+
|
496
552
|
protected
|
497
553
|
|
498
554
|
#
|