sitemap_generator 5.0.0.beta → 5.0.0.beta1

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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ./
3
3
  specs:
4
- sitemap_generator (5.0.0.beta)
4
+ sitemap_generator (5.0.0.beta1)
5
5
  builder
6
6
 
7
7
  GEM
data/VERSION CHANGED
@@ -1 +1 @@
1
- 5.0.0.beta
1
+ 5.0.0.beta1
@@ -42,7 +42,7 @@ module SitemapGenerator
42
42
  HTML
43
43
  @xml_wrapper_start.gsub!(/\s+/, ' ').gsub!(/ *> */, '>').strip!
44
44
  @xml_wrapper_end = %q[</urlset>]
45
- @filesize = bytesize(@xml_wrapper_start) + bytesize(@xml_wrapper_end)
45
+ @filesize = SitemapGenerator::Utilities.bytesize(@xml_wrapper_start) + SitemapGenerator::Utilities.bytesize(@xml_wrapper_end)
46
46
  @written = false
47
47
  @reserved_name = nil # holds the name reserved from the namer
48
48
  @frozen = false # rather than actually freeze, use this boolean
@@ -66,7 +66,7 @@ module SitemapGenerator
66
66
  # of <tt>bytes</tt> bytes in size. You can also pass a string and the
67
67
  # bytesize will be calculated for you.
68
68
  def file_can_fit?(bytes)
69
- bytes = bytes.is_a?(String) ? bytesize(bytes) : bytes
69
+ bytes = bytes.is_a?(String) ? SitemapGenerator::Utilities.bytesize(bytes) : bytes
70
70
  (@filesize + bytes) < SitemapGenerator::MAX_SITEMAP_FILESIZE && @link_count < SitemapGenerator::MAX_SITEMAP_LINKS && @news_count < SitemapGenerator::MAX_SITEMAP_NEWS
71
71
  end
72
72
 
@@ -108,7 +108,7 @@ module SitemapGenerator
108
108
 
109
109
  # Add the XML to the sitemap
110
110
  @xml_content << xml
111
- @filesize += bytesize(xml)
111
+ @filesize += SitemapGenerator::Utilities.bytesize(xml)
112
112
  @link_count += 1
113
113
  end
114
114
 
@@ -136,7 +136,7 @@ module SitemapGenerator
136
136
  raise SitemapGenerator::SitemapError.new("Sitemap already written!") if written?
137
137
  finalize! unless finalized?
138
138
  reserve_name
139
- @location.write(@xml_wrapper_start + @xml_content + @xml_wrapper_end)
139
+ @location.write(@xml_wrapper_start + @xml_content + @xml_wrapper_end, link_count)
140
140
  @xml_content = @xml_wrapper_start = @xml_wrapper_end = ''
141
141
  @written = true
142
142
  end
@@ -164,23 +164,6 @@ module SitemapGenerator
164
164
  location.delete(:filename) if location.namer
165
165
  self.class.new(location)
166
166
  end
167
-
168
- protected
169
-
170
- # Replace the last 3 characters of string with ... if the string is as big
171
- # or bigger than max.
172
- def ellipsis(string, max)
173
- if string.size > max
174
- (string[0, max - 3] || '') + '...'
175
- else
176
- string
177
- end
178
- end
179
-
180
- # Return the bytesize length of the string. Ruby 1.8.6 compatible.
181
- def bytesize(string)
182
- string.respond_to?(:bytesize) ? string.bytesize : string.length
183
- end
184
167
  end
185
168
  end
186
169
  end
@@ -22,7 +22,7 @@ module SitemapGenerator
22
22
  HTML
23
23
  @xml_wrapper_start.gsub!(/\s+/, ' ').gsub!(/ *> */, '>').strip!
24
24
  @xml_wrapper_end = %q[</sitemapindex>]
25
- @filesize = bytesize(@xml_wrapper_start) + bytesize(@xml_wrapper_end)
25
+ @filesize = SitemapGenerator::Utilities.bytesize(@xml_wrapper_start) + SitemapGenerator::Utilities.bytesize(@xml_wrapper_end)
26
26
  @written = false
27
27
  @reserved_name = nil # holds the name reserved from the namer
28
28
  @frozen = false # rather than actually freeze, use this boolean
@@ -84,7 +84,7 @@ module SitemapGenerator
84
84
  # of <tt>bytes</tt> bytes in size. You can also pass a string and the
85
85
  # bytesize will be calculated for you.
86
86
  def file_can_fit?(bytes)
87
- bytes = bytes.is_a?(String) ? bytesize(bytes) : bytes
87
+ bytes = bytes.is_a?(String) ? SitemapGenerator::Utilities.bytesize(bytes) : bytes
88
88
  (@filesize + bytes) < SitemapGenerator::MAX_SITEMAP_FILESIZE && @link_count < SitemapGenerator::MAX_SITEMAP_FILES
89
89
  end
90
90
 
@@ -150,16 +150,17 @@ module SitemapGenerator
150
150
 
151
151
  # Write `data` out to a file.
152
152
  # Output a summary line if verbose is true.
153
- def write(data)
153
+ def write(data, link_count)
154
154
  adapter.write(self, data)
155
- puts summary if verbose?
155
+ puts summary(link_count) if verbose?
156
156
  end
157
157
 
158
158
  # Return a summary string
159
- def summary
159
+ def summary(link_count)
160
160
  filesize = number_to_human_size(self.filesize)
161
- path = ellipsis(self.path_in_public, self::PATH_OUTPUT_WIDTH)
162
- "+ #{'%-'+self::PATH_OUTPUT_WIDTH+'s' % path} #{'%10s' % @link_count} links / #{'%10s' % filesize}"
161
+ width = self.class::PATH_OUTPUT_WIDTH
162
+ path = SitemapGenerator::Utilities.ellipsis(self.path_in_public, width)
163
+ "+ #{('%-'+width.to_s+'s') % path} #{'%10s' % link_count} links / #{'%10s' % filesize}"
163
164
  end
164
165
  end
165
166
 
@@ -181,10 +182,11 @@ module SitemapGenerator
181
182
  end
182
183
 
183
184
  # Return a summary string
184
- def summary
185
+ def summary(link_count)
185
186
  filesize = number_to_human_size(self.filesize)
186
- path = ellipsis(self.path_in_public, self::PATH_OUTPUT_WIDTH - 3)
187
- "+ #{'%-'+self::PATH_OUTPUT_WIDTH+'s' % path} #{'%10s' % @link_count} sitemaps / #{'%10s' % filesize}"
187
+ width = self.class::PATH_OUTPUT_WIDTH - 3
188
+ path = SitemapGenerator::Utilities.ellipsis(self.path_in_public, width)
189
+ "+ #{('%-'+width.to_s+'s') % path} #{'%10s' % link_count} sitemaps / #{'%10s' % filesize}"
188
190
  end
189
191
  end
190
192
  end
@@ -60,7 +60,7 @@ module SitemapGenerator
60
60
  [value]
61
61
  end
62
62
  end
63
-
63
+
64
64
  # Rounds the float with the specified precision.
65
65
  #
66
66
  # x = 1.337
@@ -151,7 +151,7 @@ module SitemapGenerator
151
151
  def falsy?(value)
152
152
  ['0', 0, 'f', 'false', false].include?(value)
153
153
  end
154
-
154
+
155
155
  # Append a slash to `path` if it does not already end in a slash.
156
156
  # Returns a string. Expects a string or Pathname object.
157
157
  def append_slash(path)
@@ -159,8 +159,23 @@ module SitemapGenerator
159
159
  if strpath[-1] != nil && strpath[-1].chr != '/'
160
160
  strpath + '/'
161
161
  else
162
- strpath
162
+ strpath
163
+ end
164
+ end
165
+
166
+ # Replace the last 3 characters of string with ... if the string is as big
167
+ # or bigger than max.
168
+ def ellipsis(string, max)
169
+ if string.size > max
170
+ (string[0, max - 3] || '') + '...'
171
+ else
172
+ string
163
173
  end
164
174
  end
175
+
176
+ # Return the bytesize length of the string. Ruby 1.8.6 compatible.
177
+ def bytesize(string)
178
+ string.respond_to?(:bytesize) ? string.bytesize : string.length
179
+ end
165
180
  end
166
181
  end
@@ -107,26 +107,4 @@ describe 'SitemapGenerator::Builder::SitemapFile' do
107
107
  sitemap.add '/one'
108
108
  end
109
109
  end
110
-
111
- describe "ellipsis" do
112
- it "should not modify when less than or equal to max" do
113
- (1..10).each do |i|
114
- string = 'a'*i
115
- sitemap.send(:ellipsis, string, 10).should == string
116
- end
117
- end
118
-
119
- it "should replace last 3 characters with ellipsis when greater than max" do
120
- (1..5).each do |i|
121
- string = 'aaaaa' + 'a'*i
122
- sitemap.send(:ellipsis, string, 5).should == 'aa...'
123
- end
124
- end
125
-
126
- it "should not freak out when string too small" do
127
- sitemap.send(:ellipsis, 'a', 1).should == 'a'
128
- sitemap.send(:ellipsis, 'aa', 1).should == '...'
129
- sitemap.send(:ellipsis, 'aaa', 1).should == '...'
130
- end
131
- end
132
110
  end
@@ -149,14 +149,14 @@ describe SitemapGenerator::SitemapLocation do
149
149
  location = SitemapGenerator::SitemapLocation.new(:public_path => 'public/', :verbose => true)
150
150
  location.adapter.stubs(:write)
151
151
  location.expects(:summary)
152
- location.write('data')
152
+ location.write('data', 1)
153
153
  end
154
154
 
155
155
  it "should not output summary line when not verbose" do
156
156
  location = SitemapGenerator::SitemapLocation.new(:public_path => 'public/', :verbose => false)
157
157
  location.adapter.stubs(:write)
158
158
  location.expects(:summary).never
159
- location.write('data')
159
+ location.write('data', 1)
160
160
  end
161
161
  end
162
162
 
@@ -185,6 +185,17 @@ describe SitemapGenerator::SitemapLocation do
185
185
  location.filename.should == 'sitemap.xml.gz'
186
186
  end
187
187
  end
188
+
189
+ describe "when not compressing" do
190
+ it "the URL should point to the uncompressed file" do
191
+ location = SitemapGenerator::SitemapLocation.new(
192
+ :namer => SitemapGenerator::SimpleNamer.new(:sitemap),
193
+ :host => 'http://example.com',
194
+ :compress => false
195
+ )
196
+ location.url.should == 'http://example.com/sitemap.xml'
197
+ end
198
+ end
188
199
  end
189
200
 
190
201
  describe SitemapGenerator::SitemapIndexLocation do
@@ -66,7 +66,7 @@ describe SitemapGenerator::Utilities do
66
66
  SitemapGenerator::Utilities.as_array({}).should == [{}]
67
67
  end
68
68
  end
69
-
69
+
70
70
  describe "append_slash" do
71
71
  SitemapGenerator::Utilities.append_slash('').should == ''
72
72
  SitemapGenerator::Utilities.append_slash(nil).should == ''
@@ -76,4 +76,26 @@ describe SitemapGenerator::Utilities do
76
76
  SitemapGenerator::Utilities.append_slash('tmp/').should == 'tmp/'
77
77
  SitemapGenerator::Utilities.append_slash(Pathname.new('tmp/')).should == 'tmp/'
78
78
  end
79
+
80
+ describe "ellipsis" do
81
+ it "should not modify when less than or equal to max" do
82
+ (1..10).each do |i|
83
+ string = 'a'*i
84
+ SitemapGenerator::Utilities.ellipsis(string, 10).should == string
85
+ end
86
+ end
87
+
88
+ it "should replace last 3 characters with ellipsis when greater than max" do
89
+ (1..5).each do |i|
90
+ string = 'aaaaa' + 'a'*i
91
+ SitemapGenerator::Utilities.ellipsis(string, 5).should == 'aa...'
92
+ end
93
+ end
94
+
95
+ it "should not freak out when string too small" do
96
+ SitemapGenerator::Utilities.ellipsis('a', 1).should == 'a'
97
+ SitemapGenerator::Utilities.ellipsis('aa', 1).should == '...'
98
+ SitemapGenerator::Utilities.ellipsis('aaa', 1).should == '...'
99
+ end
100
+ end
79
101
  end
metadata CHANGED
@@ -7,7 +7,8 @@ version: !ruby/object:Gem::Version
7
7
  - 0
8
8
  - 0
9
9
  - beta
10
- version: 5.0.0.beta
10
+ - 1
11
+ version: 5.0.0.beta1
11
12
  platform: ruby
12
13
  authors:
13
14
  - Karl Varga
@@ -175,7 +176,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
176
  requirements:
176
177
  - - ">="
177
178
  - !ruby/object:Gem::Version
178
- hash: -334787337373282166
179
+ hash: -4596845010722426093
179
180
  segments:
180
181
  - 0
181
182
  version: "0"