sitemap_generator 5.0.0 → 5.0.1
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 +39 -28
- data/VERSION +1 -1
- data/lib/capistrano/sitemap_generator.rb +1 -0
- data/lib/capistrano/tasks/sitemap_generator.cap +36 -0
- data/lib/sitemap_generator.rb +1 -0
- data/lib/sitemap_generator/adapters/fog_adapter.rb +28 -0
- data/lib/sitemap_generator/link_set.rb +2 -1
- data/spec/sitemap_generator/helpers/number_helper_spec.rb +6 -1
- metadata +8 -5
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -117,6 +117,7 @@ That's it! Welcome to the future!
|
|
117
117
|
|
118
118
|
## Changelog
|
119
119
|
|
120
|
+
* v5.0.1: Include new `SitemapGenerator::FogAdapter` ([#138](https://github.com/kjvarga/sitemap_generator/pull/138)). Fix usage of attr_* methods in LinkSet; don't override custom getters/setters ([#144](https://github.com/kjvarga/sitemap_generator/pull/144)). Fix breaking spec in Ruby 2 ([#142](https://github.com/kjvarga/sitemap_generator/pull/142)). Include Capistrano 3.x tasks ([#141](https://github.com/kjvarga/sitemap_generator/pull/141)).
|
120
121
|
* v5.0.0: Support new `:compress` option for customizing which files get compressed. Remove old deprecated methods (see deprecation notices above). Support `fog_path_style` option in the `SitemapGenerator::S3Adapter` so buckets with dots in the name work over HTTPS without SSL certificate problems.
|
121
122
|
* v4.3.1: Support integer timestamps. Update README for new features added in last release.
|
122
123
|
* v4.3.0: Support `media` attibute on alternate links ([#125](https://github.com/kjvarga/sitemap_generator/issues/125)). Changed `SitemapGenerator::S3Adapter` to write files in a single operation, avoiding potential permissions errors when listing a directory prior to writing ([#130](https://github.com/kjvarga/sitemap_generator/issues/130)). Remove Sitemap Writer from ping task ([#129](https://github.com/kjvarga/sitemap_generator/issues/129)). Support `url:expires` element ([#126](https://github.com/kjvarga/sitemap_generator/issues/126)).
|
@@ -297,34 +298,27 @@ SitemapGenerator::Interpreter.send :include, RoutingHelper
|
|
297
298
|
|
298
299
|
## Deployments & Capistrano
|
299
300
|
|
300
|
-
To
|
301
|
+
To include the capistrano tasks just add the following to your Capfile:
|
301
302
|
|
302
|
-
|
303
|
-
|
303
|
+
```ruby
|
304
|
+
require 'capistrano/sitemap_generator'
|
305
|
+
```
|
304
306
|
|
305
|
-
|
306
|
-
SitemapGenerator::Sitemap.sitemaps_path = 'shared/'
|
307
|
-
```
|
308
|
-
2. **Copy the sitemaps from the previous deploy over to the new deploy:**
|
309
|
-
(You will need to customize the task if you are using custom sitemap filenames or locations.)
|
310
|
-
|
311
|
-
```ruby
|
312
|
-
after "deploy:update_code", "deploy:copy_old_sitemap"
|
313
|
-
namespace :deploy do
|
314
|
-
task :copy_old_sitemap do
|
315
|
-
run "if [ -e #{previous_release}/public/sitemap.xml.gz ]; then cp #{previous_release}/public/sitemap* #{current_release}/public/; fi"
|
316
|
-
end
|
317
|
-
end
|
318
|
-
```
|
319
|
-
3. **Regenerate your sitemaps after each deployment:**
|
307
|
+
Available capistrano tasks:
|
320
308
|
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
309
|
+
```ruby
|
310
|
+
deploy:sitemap:create #Create sitemaps without pinging search engines
|
311
|
+
deploy:sitemap:refresh #Create sitemaps and ping search engines
|
312
|
+
deploy:sitemap:clean #Clean up sitemaps in the sitemap path
|
313
|
+
```
|
314
|
+
|
315
|
+
**Generate sitemaps into a directory which is shared by all deployments.**
|
327
316
|
|
317
|
+
You can set your sitemaps path to your shared directory using the `sitemaps_path` option. For example if we have a directory `public/shared/` that is shared by all deployments we can have our sitemaps generated into that directory by setting:
|
318
|
+
|
319
|
+
```ruby
|
320
|
+
SitemapGenerator::Sitemap.sitemaps_path = 'shared/'
|
321
|
+
```
|
328
322
|
|
329
323
|
### Sitemaps with no Index File
|
330
324
|
|
@@ -351,11 +345,28 @@ And the default "intelligent" behaviour:
|
|
351
345
|
SitemapGenerator::Sitemap.create_index = :auto
|
352
346
|
```
|
353
347
|
|
354
|
-
### Upload Sitemaps to a Remote Host
|
348
|
+
### Upload Sitemaps to a Remote Host using Adapters
|
349
|
+
|
350
|
+
_This section needs better documentation. Please consider contributing._
|
351
|
+
|
352
|
+
#### Supported Adapters
|
353
|
+
* `SitemapGenerator::FileAdapter`
|
354
|
+
|
355
|
+
Standard adapter, writes out to a file
|
356
|
+
|
357
|
+
* `SitemapGenerator::FogAdapter`
|
358
|
+
|
359
|
+
Uses `fog` to upload to any service supported by Fog.
|
360
|
+
|
361
|
+
* `SitemapGenerator::S3Adapter`
|
362
|
+
|
363
|
+
Uses `fog` to upload to Amazon S3 storage.
|
364
|
+
|
365
|
+
* `SitemapGenerator::WaveAdapter`
|
366
|
+
|
367
|
+
Uses `carrierwave` to upload to any service supported by CarrierWave.
|
355
368
|
|
356
|
-
|
357
|
-
> uses Fog and doesn't require CarrierWave. You can find a bit more information
|
358
|
-
> about it [on the wiki page][remote_hosts].
|
369
|
+
Some documentation exists [on the wiki page][remote_hosts].
|
359
370
|
|
360
371
|
Sometimes it is desirable to host your sitemap files on a remote server and point robots
|
361
372
|
and search engines to the remote files. For example if you are using a host like Heroku
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
5.0.
|
1
|
+
5.0.1
|
@@ -0,0 +1 @@
|
|
1
|
+
load File.expand_path(File.join('..', 'tasks', 'sitemap_generator.cap'), __FILE__)
|
@@ -0,0 +1,36 @@
|
|
1
|
+
namespace :deploy do
|
2
|
+
namespace :sitemap do
|
3
|
+
desc 'Create sitemap and ping search engines'
|
4
|
+
task :refresh do
|
5
|
+
on roles :web do
|
6
|
+
within release_path do
|
7
|
+
with rails_env: fetch(:rails_env) do
|
8
|
+
execute :rake, "sitemap:refresh"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
desc 'Create sitemap without pinging search engines'
|
15
|
+
task :create do
|
16
|
+
on roles :web do
|
17
|
+
within release_path do
|
18
|
+
with rails_env: fetch(:rails_env) do
|
19
|
+
execute :rake, "sitemap:create"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'Clean up sitemaps in sitemap_generator path'
|
26
|
+
task :clean do
|
27
|
+
on roles :web do
|
28
|
+
within release_path do
|
29
|
+
with rails_env: fetch(:rails_env) do
|
30
|
+
execute :rake, "sitemap:clean"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/sitemap_generator.rb
CHANGED
@@ -12,6 +12,7 @@ module SitemapGenerator
|
|
12
12
|
autoload(:FileAdapter, 'sitemap_generator/adapters/file_adapter')
|
13
13
|
autoload(:S3Adapter, 'sitemap_generator/adapters/s3_adapter')
|
14
14
|
autoload(:WaveAdapter, 'sitemap_generator/adapters/wave_adapter')
|
15
|
+
autoload(:FogAdapter, 'sitemap_generator/adapters/fog_adapter')
|
15
16
|
autoload(:BigDecimal, 'sitemap_generator/core_ext/big_decimal')
|
16
17
|
autoload(:Numeric, 'sitemap_generator/core_ext/numeric')
|
17
18
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
begin
|
2
|
+
require 'fog'
|
3
|
+
rescue LoadError
|
4
|
+
raise LoadError.new("Missing required 'fog'. Please 'gem install fog' and require it in your application.")
|
5
|
+
end
|
6
|
+
|
7
|
+
module SitemapGenerator
|
8
|
+
class FogAdapter
|
9
|
+
|
10
|
+
def initialize(opts = {})
|
11
|
+
@fog_credentials = opts[:fog_credentials]
|
12
|
+
@fog_directory = opts[:fog_directory]
|
13
|
+
end
|
14
|
+
|
15
|
+
# Call with a SitemapLocation and string data
|
16
|
+
def write(location, raw_data)
|
17
|
+
SitemapGenerator::FileAdapter.new.write(location, raw_data)
|
18
|
+
|
19
|
+
storage = Fog::Storage.new(@fog_credentials)
|
20
|
+
directory = storage.directories.new(:key => @fog_directory)
|
21
|
+
directory.files.create(
|
22
|
+
:key => location.path_in_public,
|
23
|
+
:body => File.open(location.path),
|
24
|
+
:public => true
|
25
|
+
)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -8,7 +8,8 @@ module SitemapGenerator
|
|
8
8
|
@@new_location_opts = [:filename, :sitemaps_path, :namer]
|
9
9
|
|
10
10
|
attr_reader :default_host, :sitemaps_path, :filename, :create_index
|
11
|
-
attr_accessor :
|
11
|
+
attr_accessor :include_root, :include_index, :adapter, :yield_sitemap
|
12
|
+
attr_writer :verbose
|
12
13
|
|
13
14
|
# Create a new sitemap index and sitemap files. Pass a block with calls to the following
|
14
15
|
# methods:
|
@@ -54,7 +54,12 @@ describe SitemapGenerator::Helpers::NumberHelper do
|
|
54
54
|
number_with_precision(0, :precision => 0).should == "0"
|
55
55
|
number_with_precision(0.001, :precision => 5).should == "0.00100"
|
56
56
|
number_with_precision(0.00111, :precision => 3).should == "0.001"
|
57
|
-
|
57
|
+
# Odd difference between Ruby versions
|
58
|
+
if RUBY_VERSION < '1.9.3'
|
59
|
+
number_with_precision(9.995, :precision => 2).should == "9.99"
|
60
|
+
else
|
61
|
+
number_with_precision(9.995, :precision => 2).should == "10.00"
|
62
|
+
end
|
58
63
|
number_with_precision(10.995, :precision => 2).should == "11.00"
|
59
64
|
end
|
60
65
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 5
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 5.0.
|
8
|
+
- 1
|
9
|
+
version: 5.0.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Karl Varga
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2014-
|
17
|
+
date: 2014-03-04 00:00:00 -08:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -84,7 +84,10 @@ files:
|
|
84
84
|
- Rakefile
|
85
85
|
- README.md
|
86
86
|
- VERSION
|
87
|
+
- lib/capistrano/sitemap_generator.rb
|
88
|
+
- lib/capistrano/tasks/sitemap_generator.cap
|
87
89
|
- lib/sitemap_generator/adapters/file_adapter.rb
|
90
|
+
- lib/sitemap_generator/adapters/fog_adapter.rb
|
88
91
|
- lib/sitemap_generator/adapters/s3_adapter.rb
|
89
92
|
- lib/sitemap_generator/adapters/wave_adapter.rb
|
90
93
|
- lib/sitemap_generator/adapters.rb
|
@@ -174,7 +177,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
174
177
|
requirements:
|
175
178
|
- - ">="
|
176
179
|
- !ruby/object:Gem::Version
|
177
|
-
hash:
|
180
|
+
hash: 3343341669011167258
|
178
181
|
segments:
|
179
182
|
- 0
|
180
183
|
version: "0"
|
@@ -183,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
186
|
requirements:
|
184
187
|
- - ">="
|
185
188
|
- !ruby/object:Gem::Version
|
186
|
-
hash:
|
189
|
+
hash: 3343341669011167258
|
187
190
|
segments:
|
188
191
|
- 0
|
189
192
|
version: "0"
|