sitemap_generator 6.1.2 → 6.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +13 -0
- data/README.md +116 -92
- data/VERSION +1 -1
- data/lib/sitemap_generator/adapters/aws_sdk_adapter.rb +26 -27
- data/lib/sitemap_generator/adapters/fog_adapter.rb +1 -1
- data/lib/sitemap_generator/adapters/google_storage_adapter.rb +2 -2
- data/lib/sitemap_generator/adapters/s3_adapter.rb +8 -2
- data/lib/sitemap_generator/adapters/wave_adapter.rb +1 -1
- data/lib/sitemap_generator/builder/sitemap_index_url.rb +2 -2
- data/lib/sitemap_generator/builder/sitemap_url.rb +20 -3
- data/lib/sitemap_generator/link_set.rb +2 -2
- metadata +28 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6619733ac6e91a00c5a7b194f82f76b68de2c0521dda3c554d28c8315c0e7c29
|
4
|
+
data.tar.gz: 0d73d0acac5b95961d5799a766a5c6af6fac85173420807db5cbc9a630f1841d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 637cc70ee0036b4e9d228abe34abe4b220db7a6647c3e26b1b98e5df20e59d0e9c24f5f8596ef941afb5ea252081ce048cc74e95b7b52a69fc4c5e48774e3c22
|
7
|
+
data.tar.gz: 784183a6a1a1735078734f68aab8e62702b62e474c7602c9360bf2021aeff6492c03405b14a4800d42490bd0b2319c00814541252a3a8f6d4e70becfd87ee6d0
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
### 6.2.1
|
2
|
+
|
3
|
+
* Bugfix: Improve handling of deprecated options in `AwsSdkAdapter`. Fixes bug where `:region` was being set to `nil`. [#390](https://github.com/kjvarga/sitemap_generator/pull/390).
|
4
|
+
|
5
|
+
### 6.2.0
|
6
|
+
|
7
|
+
* Raise `LoadError` when an adapter's dependency is missing to better support Sorbet [#387](https://github.com/kjvarga/sitemap_generator/pull/387).
|
8
|
+
* Update the Bing notification URL [#386](https://github.com/kjvarga/sitemap_generator/pull/386).
|
9
|
+
* Setup integration testing against a matrix of Ruby and Rails versions; test against Ruby 3.1 and Rails 7.
|
10
|
+
* Change default `changefreq` of the root URL from `always` to `weekly` [#376](https://github.com/kjvarga/sitemap_generator/pull/376).
|
11
|
+
* `SitemapGenerator::GoogleStorageAdapter`: Support ruby 3 kwarg changes [#375](https://github.com/kjvarga/sitemap_generator/pull/375).
|
12
|
+
* `SitemapGenerator::S3Adapter`: Allow Fog `public` option to be Configurable [#359](https://github.com/kjvarga/sitemap_generator/pull/359).
|
13
|
+
|
1
14
|
### 6.1.2
|
2
15
|
|
3
16
|
* Resolve NoMethodError using URI#open for Ruby less than 2.5.0 [#353](https://github.com/kjvarga/sitemap_generator/pull/353)
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# SitemapGenerator
|
2
2
|
|
3
|
+
[![CircleCI](https://circleci.com/gh/kjvarga/sitemap_generator/tree/master.svg?style=shield)](https://circleci.com/gh/kjvarga/sitemap_generator/tree/master)
|
4
|
+
|
3
5
|
SitemapGenerator is the easiest way to generate Sitemaps in Ruby. Rails integration provides access to the Rails route helpers within your sitemap config file and automatically makes the rake tasks available to you. Or if you prefer to use another framework, you can! You can use the rake tasks provided or run your sitemap configs as plain ruby scripts.
|
4
6
|
|
5
7
|
Sitemaps adhere to the [Sitemap 0.9 protocol][sitemap_protocol] specification.
|
@@ -61,66 +63,68 @@ Successful ping of Bing
|
|
61
63
|
|
62
64
|
## Contents
|
63
65
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
- [
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
- [
|
106
|
-
|
107
|
-
|
108
|
-
- [
|
109
|
-
|
110
|
-
|
111
|
-
- [
|
112
|
-
|
113
|
-
|
114
|
-
- [
|
115
|
-
|
116
|
-
|
117
|
-
- [
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
- [
|
122
|
-
|
123
|
-
|
66
|
+
- [SitemapGenerator](#sitemapgenerator)
|
67
|
+
- [Features](#features)
|
68
|
+
- [Show Me](#show-me)
|
69
|
+
- [Contents](#contents)
|
70
|
+
- [Contribute](#contribute)
|
71
|
+
- [Foreword](#foreword)
|
72
|
+
- [Installation](#installation)
|
73
|
+
- [Ruby](#ruby)
|
74
|
+
- [Rails](#rails)
|
75
|
+
- [Getting Started](#getting-started)
|
76
|
+
- [Preventing Output](#preventing-output)
|
77
|
+
- [Rake Tasks](#rake-tasks)
|
78
|
+
- [Pinging Search Engines](#pinging-search-engines)
|
79
|
+
- [Crontab](#crontab)
|
80
|
+
- [Robots.txt](#robotstxt)
|
81
|
+
- [Ruby Modules](#ruby-modules)
|
82
|
+
- [Deployments & Capistrano](#deployments--capistrano)
|
83
|
+
- [Sitemaps with no Index File](#sitemaps-with-no-index-file)
|
84
|
+
- [Upload Sitemaps to a Remote Host using Adapters](#upload-sitemaps-to-a-remote-host-using-adapters)
|
85
|
+
- [Supported Adapters](#supported-adapters)
|
86
|
+
- [`SitemapGenerator::FileAdapter`](#sitemapgeneratorfileadapter)
|
87
|
+
- [`SitemapGenerator::FogAdapter`](#sitemapgeneratorfogadapter)
|
88
|
+
- [`SitemapGenerator::S3Adapter`](#sitemapgenerators3adapter)
|
89
|
+
- [`SitemapGenerator::AwsSdkAdapter`](#sitemapgeneratorawssdkadapter)
|
90
|
+
- [`SitemapGenerator::WaveAdapter`](#sitemapgeneratorwaveadapter)
|
91
|
+
- [`SitemapGenerator::GoogleStorageAdapter`](#sitemapgeneratorgooglestorageadapter)
|
92
|
+
- [An Example of Using an Adapter](#an-example-of-using-an-adapter)
|
93
|
+
- [Generating Multiple Sitemaps](#generating-multiple-sitemaps)
|
94
|
+
- [Sitemap Configuration](#sitemap-configuration)
|
95
|
+
- [A Simple Example](#a-simple-example)
|
96
|
+
- [Adding Links](#adding-links)
|
97
|
+
- [Supported Options to `add`](#supported-options-to-add)
|
98
|
+
- [Adding Links to the Sitemap Index](#adding-links-to-the-sitemap-index)
|
99
|
+
- [Accessing the LinkSet instance](#accessing-the-linkset-instance)
|
100
|
+
- [Speeding Things Up](#speeding-things-up)
|
101
|
+
- [Customizing your Sitemaps](#customizing-your-sitemaps)
|
102
|
+
- [Sitemap Options](#sitemap-options)
|
103
|
+
- [Sitemap Groups](#sitemap-groups)
|
104
|
+
- [A Groups Example](#a-groups-example)
|
105
|
+
- [Using `group` without a block](#using-group-without-a-block)
|
106
|
+
- [Sitemap Extensions](#sitemap-extensions)
|
107
|
+
- [News Sitemaps](#news-sitemaps)
|
108
|
+
- [Example](#example)
|
109
|
+
- [Supported options](#supported-options)
|
110
|
+
- [Image Sitemaps](#image-sitemaps)
|
111
|
+
- [Example](#example-1)
|
112
|
+
- [Supported options](#supported-options-1)
|
113
|
+
- [Video Sitemaps](#video-sitemaps)
|
114
|
+
- [Example](#example-2)
|
115
|
+
- [Supported options](#supported-options-2)
|
116
|
+
- [PageMap Sitemaps](#pagemap-sitemaps)
|
117
|
+
- [Supported options](#supported-options-3)
|
118
|
+
- [Example:](#example-3)
|
119
|
+
- [Alternate Links](#alternate-links)
|
120
|
+
- [Example](#example-4)
|
121
|
+
- [Supported options](#supported-options-4)
|
122
|
+
- [Alternates Example](#alternates-example)
|
123
|
+
- [Mobile Sitemaps](#mobile-sitemaps)
|
124
|
+
- [Example](#example-5)
|
125
|
+
- [Supported options](#supported-options-5)
|
126
|
+
- [Compatibility](#compatibility)
|
127
|
+
- [Licence](#licence)
|
124
128
|
|
125
129
|
## Contribute
|
126
130
|
|
@@ -352,28 +356,29 @@ directory.
|
|
352
356
|
|
353
357
|
You must `require 'fog-aws'` in your sitemap config before using this adapter.
|
354
358
|
|
355
|
-
##### `SitemapGenerator::AwsSdkAdapter`
|
356
|
-
|
357
|
-
Uses `Aws::S3::Resource` to upload to Amazon S3 storage. Includes automatic detection of your AWS
|
358
|
-
credentials using `Aws::Credentials`.
|
359
|
-
|
360
|
-
You must `require 'aws-sdk-s3'` in your sitemap config before using this adapter,
|
361
|
-
or `require` another library that defines `Aws::S3::Resource` and `Aws::Credentials`.
|
362
|
-
|
363
359
|
An example of using this adapter in your sitemap configuration:
|
364
360
|
|
365
361
|
```ruby
|
366
|
-
SitemapGenerator::Sitemap.adapter = SitemapGenerator::
|
367
|
-
aws_access_key_id: 'AKIAI3SW5CRAZBL4WSTA',
|
368
|
-
aws_secret_access_key: 'asdfadsfdsafsadf',
|
369
|
-
aws_region: 'us-east-1'
|
370
|
-
)
|
362
|
+
SitemapGenerator::Sitemap.adapter = SitemapGenerator::S3Adapter.new(options)
|
371
363
|
```
|
372
364
|
|
373
|
-
|
365
|
+
Where `options` is a Hash with any of the following keys:
|
366
|
+
* `aws_access_key_id` [String] Your AWS access key id
|
367
|
+
* `aws_secret_access_key` [String] Your AWS secret access key
|
368
|
+
* `fog_provider` [String]
|
369
|
+
* `fog_directory` [String]
|
370
|
+
* `fog_region` [String]
|
371
|
+
* `fog_path_style` [String]
|
372
|
+
* `fog_storage_options` [Hash] Other options to pass to `Fog::Storage`
|
373
|
+
* `fog_public` [Boolean] Whether the file is publicly accessible
|
374
|
+
|
375
|
+
Alternatively you can use an environment variable to configure each option (except `fog_storage_options`). The environment variables have the same
|
376
|
+
name but capitalized, e.g. `FOG_PATH_STYLE`.
|
377
|
+
|
378
|
+
##### `SitemapGenerator::AwsSdkAdapter`
|
374
379
|
|
375
380
|
Uses `Aws::S3::Resource` to upload to Amazon S3 storage. Includes automatic detection of your AWS
|
376
|
-
credentials
|
381
|
+
credentials and region.
|
377
382
|
|
378
383
|
You must `require 'aws-sdk-s3'` in your sitemap config before using this adapter,
|
379
384
|
or `require` another library that defines `Aws::S3::Resource` and `Aws::Credentials`.
|
@@ -382,13 +387,19 @@ directory.
|
|
382
387
|
|
383
388
|
```ruby
|
384
389
|
SitemapGenerator::Sitemap.adapter = SitemapGenerator::AwsSdkAdapter.new('s3_bucket',
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
390
|
+
access_key_id: 'AKIAI3SW5CRAZBL4WSTA',
|
391
|
+
secret_access_key: 'asdfadsfdsafsadf',
|
392
|
+
region: 'us-east-1',
|
393
|
+
endpoint: 'https://sfo2.digitaloceanspaces.com'
|
389
394
|
)
|
390
395
|
```
|
391
396
|
|
397
|
+
Where the first argument is the S3 bucket name, and the rest are keyword argument options which
|
398
|
+
are passed directly to the AWS client.
|
399
|
+
|
400
|
+
See https://docs.aws.amazon.com/sdk-for-ruby/v2/api/Aws/S3/Client.html#initialize-instance_method
|
401
|
+
for a full list of supported options.
|
402
|
+
|
392
403
|
##### `SitemapGenerator::WaveAdapter`
|
393
404
|
|
394
405
|
Uses `CarrierWave::Uploader::Base` to upload to any service supported by CarrierWave, for example,
|
@@ -460,8 +471,7 @@ directory.
|
|
460
471
|
Note that SitemapGenerator will automatically turn off `include_index` in this case because
|
461
472
|
the `sitemaps_host` does not match the `default_host`. The link to the sitemap index file
|
462
473
|
that would otherwise be included would point to a different host than the rest of the links
|
463
|
-
in the sitemap, something that the sitemap rules forbid.
|
464
|
-
longer an issue because [`include_index` is off by default][include_index_change].)
|
474
|
+
in the sitemap, something that the sitemap rules forbid.
|
465
475
|
|
466
476
|
4. Verify to Google that you own the S3 url
|
467
477
|
|
@@ -571,7 +581,7 @@ In /Users/karl/projects/sitemap_generator-test/public/
|
|
571
581
|
Sitemap stats: 2 links / 1 sitemaps / 0m00s
|
572
582
|
```
|
573
583
|
|
574
|
-
Weird! The sitemap has two links, even though we only added one! This is because SitemapGenerator adds the root URL `/` for you by default.
|
584
|
+
Weird! The sitemap has two links, even though we only added one! This is because SitemapGenerator adds the root URL `/` for you by default. You can change the default behaviour by setting the `include_root` or `include_index` option.
|
575
585
|
|
576
586
|
Now let's take a look at the file that was created. After uncompressing and XML-tidying the contents we have:
|
577
587
|
|
@@ -584,7 +594,7 @@ Now let's take a look at the file that was created. After uncompressing and XML
|
|
584
594
|
<url>
|
585
595
|
<loc>http://www.example.com/</loc>
|
586
596
|
<lastmod>2011-05-21T00:03:38+00:00</lastmod>
|
587
|
-
<changefreq>
|
597
|
+
<changefreq>weekly</changefreq>
|
588
598
|
<priority>1.0</priority>
|
589
599
|
</url>
|
590
600
|
<url>
|
@@ -1116,7 +1126,27 @@ end
|
|
1116
1126
|
* `:nofollow` - Optional, boolean. Used to mark link as "nofollow".
|
1117
1127
|
* `:media` - Optional, string. Specify [media targets for responsive design pages][media].
|
1118
1128
|
|
1119
|
-
|
1129
|
+
#### Alternates Example
|
1130
|
+
|
1131
|
+
```ruby
|
1132
|
+
SitemapGenerator::Sitemap.default_host = "http://www.example.com"
|
1133
|
+
SitemapGenerator::Sitemap.create do
|
1134
|
+
add('/index.html', :alternates => [
|
1135
|
+
{
|
1136
|
+
:href => 'http://www.example.de/index.html',
|
1137
|
+
:lang => 'de',
|
1138
|
+
:nofollow => true
|
1139
|
+
},
|
1140
|
+
{
|
1141
|
+
:href => 'http://www.example.es/index.html',
|
1142
|
+
:lang => 'es',
|
1143
|
+
:nofollow => true
|
1144
|
+
}
|
1145
|
+
])
|
1146
|
+
end
|
1147
|
+
```
|
1148
|
+
|
1149
|
+
### Mobile Sitemaps
|
1120
1150
|
|
1121
1151
|
Mobile sitemaps include a specific `<mobile:mobile/>` tag.
|
1122
1152
|
|
@@ -1137,8 +1167,8 @@ end
|
|
1137
1167
|
|
1138
1168
|
## Compatibility
|
1139
1169
|
|
1140
|
-
Compatible with all versions of Rails and Ruby.
|
1141
|
-
Ruby 1.9.3 support was dropped in Version 6.0.0
|
1170
|
+
Compatible with all versions of Rails and Ruby. Tested up to Ruby 3.1 and Rails 7.0.
|
1171
|
+
Ruby 1.9.3 support was dropped in Version 6.0.0.
|
1142
1172
|
|
1143
1173
|
## Licence
|
1144
1174
|
|
@@ -1149,10 +1179,6 @@ MIT. See the LICENSE.md file.
|
|
1149
1179
|
Copyright (c) Karl Varga released under the MIT license
|
1150
1180
|
|
1151
1181
|
[canonical_repo]:http://github.com/kjvarga/sitemap_generator
|
1152
|
-
[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?"
|
1153
|
-
[sitemaps_org]:http://www.sitemaps.org/protocol.html "http://www.sitemaps.org/protocol.html"
|
1154
|
-
[sitemaps_xml]:http://www.sitemaps.org/protocol.html#xmlTagDefinitions "XML Tag Definitions"
|
1155
|
-
[sitemap_generator_usage]:http://wiki.github.com/adamsalter/sitemap_generator/sitemapgenerator-usage "http://wiki.github.com/adamsalter/sitemap_generator/sitemapgenerator-usage"
|
1156
1182
|
[sitemap_images]:http://www.google.com/support/webmasters/bin/answer.py?answer=178636
|
1157
1183
|
[sitemap_video]:https://support.google.com/webmasters/answer/80471?hl=en&ref_topic=4581190
|
1158
1184
|
[sitemap_news]:https://support.google.com/news/publisher/topic/2527688?hl=en&ref_topic=4359874
|
@@ -1163,8 +1189,6 @@ Copyright (c) Karl Varga released under the MIT license
|
|
1163
1189
|
[image_tags]:http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=178636
|
1164
1190
|
[news_tags]:http://www.google.com/support/news_pub/bin/answer.py?answer=74288
|
1165
1191
|
[remote_hosts]:https://github.com/kjvarga/sitemap_generator/wiki/Generate-Sitemaps-on-read-only-filesystems-like-Heroku
|
1166
|
-
[include_index_change]:https://github.com/kjvarga/sitemap_generator/issues/70
|
1167
|
-
[ehoch]:https://github.com/ehoch
|
1168
1192
|
[alternate_links]:http://support.google.com/webmasters/bin/answer.py?hl=en&answer=2620865
|
1169
1193
|
[using_pagemaps]:https://developers.google.com/custom-search/docs/structured_data#pagemaps
|
1170
1194
|
[iso_4217]:http://en.wikipedia.org/wiki/ISO_4217
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
6.1
|
1
|
+
6.2.1
|
@@ -1,5 +1,5 @@
|
|
1
1
|
if !defined?(Aws::S3::Resource) or !defined?(Aws::Credentials)
|
2
|
-
raise "Error: `Aws::S3::Resource` and/or `Aws::Credentials` are not defined.\n\n"\
|
2
|
+
raise LoadError, "Error: `Aws::S3::Resource` and/or `Aws::Credentials` are not defined.\n\n"\
|
3
3
|
"Please `require 'aws-sdk'` - or another library that defines these classes."
|
4
4
|
end
|
5
5
|
|
@@ -8,25 +8,33 @@ module SitemapGenerator
|
|
8
8
|
class AwsSdkAdapter
|
9
9
|
# Specify your AWS bucket name, credentials, and/or region. By default
|
10
10
|
# the AWS SDK will auto-detect your credentials and region, but you can use
|
11
|
-
# the
|
12
|
-
#
|
13
|
-
# Options:
|
14
|
-
# :aws_access_key_id [String] Your AWS access key id
|
15
|
-
# :aws_secret_access_key [String] Your AWS secret access key
|
16
|
-
# :aws_region [String] Your AWS region
|
11
|
+
# the options to configure them manually.
|
17
12
|
#
|
18
13
|
# Requires Aws::S3::Resource and Aws::Credentials to be defined.
|
19
14
|
#
|
20
|
-
# @param [String]
|
21
|
-
# @param [Hash]
|
22
|
-
|
15
|
+
# @param bucket [String] Name of the S3 bucket
|
16
|
+
# @param options [Hash] Options passed directly to AWS to control the Resource created. See Options below.
|
17
|
+
#
|
18
|
+
# Options:
|
19
|
+
# **Deprecated, use :endpoint instead** :aws_endpoint [String] The object storage endpoint,
|
20
|
+
# if not AWS, e.g. 'https://sfo2.digitaloceanspaces.com'
|
21
|
+
# **Deprecated, use :access_key_id instead** :access_key_id [String] Your AWS access key id
|
22
|
+
# **Deprecated, use :secret_access_key instead** :aws_secret_access_key [String] Your AWS secret access key
|
23
|
+
# **Deprecated, use :region instead** :aws_region [String] Your AWS region
|
24
|
+
#
|
25
|
+
# All other options you provide are passed directly to the AWS client.
|
26
|
+
# See https://docs.aws.amazon.com/sdk-for-ruby/v2/api/Aws/S3/Client.html#initialize-instance_method
|
27
|
+
# for a full list of supported options.
|
28
|
+
def initialize(bucket, aws_access_key_id: nil, aws_secret_access_key: nil, aws_region: nil, aws_endpoint: nil, **options)
|
23
29
|
@bucket = bucket
|
24
|
-
@
|
25
|
-
|
26
|
-
|
27
|
-
|
30
|
+
@options = options
|
31
|
+
set_option_unless_set(:access_key_id, aws_access_key_id)
|
32
|
+
set_option_unless_set(:secret_access_key, aws_secret_access_key)
|
33
|
+
set_option_unless_set(:region, aws_region)
|
34
|
+
set_option_unless_set(:endpoint, aws_endpoint)
|
28
35
|
end
|
29
36
|
|
37
|
+
|
30
38
|
# Call with a SitemapLocation and string data
|
31
39
|
def write(location, raw_data)
|
32
40
|
SitemapGenerator::FileAdapter.new.write(location, raw_data)
|
@@ -40,21 +48,12 @@ module SitemapGenerator
|
|
40
48
|
|
41
49
|
private
|
42
50
|
|
43
|
-
def
|
44
|
-
@
|
51
|
+
def set_option_unless_set(key, value)
|
52
|
+
@options[key] = value if @options[key].nil? && !value.nil?
|
45
53
|
end
|
46
54
|
|
47
|
-
def
|
48
|
-
|
49
|
-
options[:region] = @aws_region if !@aws_region.nil?
|
50
|
-
options[:endpoint] = @aws_endpoint if !@aws_endpoint.nil?
|
51
|
-
if !@aws_access_key_id.nil? && !@aws_secret_access_key.nil?
|
52
|
-
options[:credentials] = Aws::Credentials.new(
|
53
|
-
@aws_access_key_id,
|
54
|
-
@aws_secret_access_key
|
55
|
-
)
|
56
|
-
end
|
57
|
-
options
|
55
|
+
def s3_resource
|
56
|
+
@s3_resource ||= Aws::S3::Resource.new(@options)
|
58
57
|
end
|
59
58
|
end
|
60
59
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
if !defined?(Google::Cloud::Storage)
|
2
|
-
raise "Error: `Google::Cloud::Storage` is not defined.\n\n"\
|
2
|
+
raise LoadError, "Error: `Google::Cloud::Storage` is not defined.\n\n"\
|
3
3
|
"Please `require 'google/cloud/storage'` - or another library that defines this class."
|
4
4
|
end
|
5
5
|
|
@@ -29,7 +29,7 @@ module SitemapGenerator
|
|
29
29
|
def write(location, raw_data)
|
30
30
|
SitemapGenerator::FileAdapter.new.write(location, raw_data)
|
31
31
|
|
32
|
-
storage = Google::Cloud::Storage.new(
|
32
|
+
storage = Google::Cloud::Storage.new(**@storage_options)
|
33
33
|
bucket = storage.bucket(@bucket)
|
34
34
|
bucket.create_file(location.path, location.path_in_public, acl: 'public')
|
35
35
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
if !defined?(Fog::Storage)
|
2
|
-
raise "Error: `Fog::Storage` is not defined.\n\n"\
|
2
|
+
raise LoadError, "Error: `Fog::Storage` is not defined.\n\n"\
|
3
3
|
"Please `require 'fog-aws'` - or another library that defines this class."
|
4
4
|
end
|
5
5
|
|
@@ -16,6 +16,10 @@ module SitemapGenerator
|
|
16
16
|
# @option :fog_region [String]
|
17
17
|
# @option :fog_path_style [String]
|
18
18
|
# @option :fog_storage_options [Hash] Other options to pass to `Fog::Storage`
|
19
|
+
# @option :fog_public [Boolean] Whether the file is publicly accessible
|
20
|
+
#
|
21
|
+
# Alternatively you can use an environment variable to configure each option (except `fog_storage_options`).
|
22
|
+
# The environment variables have the same name but capitalized, e.g. `FOG_PATH_STYLE`.
|
19
23
|
def initialize(opts = {})
|
20
24
|
@aws_access_key_id = opts[:aws_access_key_id] || ENV['AWS_ACCESS_KEY_ID']
|
21
25
|
@aws_secret_access_key = opts[:aws_secret_access_key] || ENV['AWS_SECRET_ACCESS_KEY']
|
@@ -24,6 +28,8 @@ module SitemapGenerator
|
|
24
28
|
@fog_region = opts[:fog_region] || ENV['FOG_REGION']
|
25
29
|
@fog_path_style = opts[:fog_path_style] || ENV['FOG_PATH_STYLE']
|
26
30
|
@fog_storage_options = opts[:fog_storage_options] || {}
|
31
|
+
fog_public = opts[:fog_public].nil? ? ENV['FOG_PUBLIC'] : opts[:fog_public]
|
32
|
+
@fog_public = SitemapGenerator::Utilities.falsy?(fog_public) ? false : true
|
27
33
|
end
|
28
34
|
|
29
35
|
# Call with a SitemapLocation and string data
|
@@ -47,7 +53,7 @@ module SitemapGenerator
|
|
47
53
|
directory.files.create(
|
48
54
|
:key => location.path_in_public,
|
49
55
|
:body => File.open(location.path),
|
50
|
-
:public =>
|
56
|
+
:public => @fog_public
|
51
57
|
)
|
52
58
|
end
|
53
59
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
if !defined?(::CarrierWave::Uploader::Base)
|
2
|
-
raise "Error: `CarrierWave::Uploader::Base` is not defined.\n\n"\
|
2
|
+
raise LoadError, "Error: `CarrierWave::Uploader::Base` is not defined.\n\n"\
|
3
3
|
"Please `require 'carrierwave'` - or another library that defines this class."
|
4
4
|
end
|
5
5
|
|
@@ -6,7 +6,7 @@ module SitemapGenerator
|
|
6
6
|
|
7
7
|
def initialize(path, options={})
|
8
8
|
if index = path.is_a?(SitemapGenerator::Builder::SitemapIndexFile) && path
|
9
|
-
options = SitemapGenerator::Utilities.reverse_merge(options, :host => index.location.host, :lastmod => Time.now, :
|
9
|
+
options = SitemapGenerator::Utilities.reverse_merge(options, :host => index.location.host, :lastmod => Time.now, :priority => 1.0)
|
10
10
|
path = index.location.path_in_public
|
11
11
|
super(path, options)
|
12
12
|
else
|
@@ -25,4 +25,4 @@ module SitemapGenerator
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
|
-
end
|
28
|
+
end
|
@@ -32,12 +32,29 @@ module SitemapGenerator
|
|
32
32
|
def initialize(path, options={})
|
33
33
|
options = SitemapGenerator::Utilities.symbolize_keys(options)
|
34
34
|
if sitemap = path.is_a?(SitemapGenerator::Builder::SitemapFile) && path
|
35
|
-
SitemapGenerator::Utilities.reverse_merge!(
|
35
|
+
SitemapGenerator::Utilities.reverse_merge!(
|
36
|
+
options,
|
37
|
+
:host => sitemap.location.host,
|
38
|
+
:lastmod => sitemap.lastmod
|
39
|
+
)
|
36
40
|
path = sitemap.location.path_in_public
|
37
41
|
end
|
38
42
|
|
39
|
-
SitemapGenerator::Utilities.assert_valid_keys(
|
40
|
-
|
43
|
+
SitemapGenerator::Utilities.assert_valid_keys(
|
44
|
+
options,
|
45
|
+
:priority, :changefreq, :lastmod, :expires, :host, :images, :video, :news, :videos, :mobile, :alternate, :alternates, :pagemap
|
46
|
+
)
|
47
|
+
SitemapGenerator::Utilities.reverse_merge!(
|
48
|
+
options,
|
49
|
+
:priority => 0.5,
|
50
|
+
:changefreq => 'weekly',
|
51
|
+
:lastmod => Time.now,
|
52
|
+
:images => [],
|
53
|
+
:news => {},
|
54
|
+
:videos => [],
|
55
|
+
:mobile => false,
|
56
|
+
:alternates => []
|
57
|
+
)
|
41
58
|
raise "Cannot generate a url without a host" unless SitemapGenerator::Utilities.present?(options[:host])
|
42
59
|
|
43
60
|
if video = options.delete(:video)
|
@@ -126,7 +126,7 @@ module SitemapGenerator
|
|
126
126
|
:filename => :sitemap,
|
127
127
|
:search_engines => {
|
128
128
|
:google => "http://www.google.com/webmasters/tools/ping?sitemap=%s",
|
129
|
-
:bing => "http://www.bing.com/ping?sitemap=%s"
|
129
|
+
:bing => "http://www.bing.com/webmaster/ping.aspx?sitemap=%s"
|
130
130
|
},
|
131
131
|
:create_index => :auto,
|
132
132
|
:compress => true,
|
@@ -438,7 +438,7 @@ module SitemapGenerator
|
|
438
438
|
# in an instance variable.
|
439
439
|
def add_default_links
|
440
440
|
@added_default_links = true
|
441
|
-
link_options = { :lastmod => Time.now, :
|
441
|
+
link_options = { :lastmod => Time.now, :priority => 1.0 }
|
442
442
|
if include_root?
|
443
443
|
add('/', link_options)
|
444
444
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sitemap_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.1
|
4
|
+
version: 6.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karl Varga
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: builder
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: aws-sdk-core
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: aws-sdk-s3
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: fog-aws
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,7 +67,21 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: google-cloud-storage
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: nokogiri
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - ">="
|
@@ -95,7 +109,7 @@ dependencies:
|
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: rspec_junit_formatter
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - ">="
|
@@ -109,7 +123,7 @@ dependencies:
|
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
126
|
+
name: rspec
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
129
|
- - ">="
|
@@ -123,7 +137,7 @@ dependencies:
|
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
140
|
+
name: webmock
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
143
|
- - ">="
|
@@ -180,11 +194,11 @@ files:
|
|
180
194
|
- rails/install.rb
|
181
195
|
- rails/uninstall.rb
|
182
196
|
- templates/sitemap.rb
|
183
|
-
homepage:
|
197
|
+
homepage: https://github.com/kjvarga/sitemap_generator
|
184
198
|
licenses:
|
185
199
|
- MIT
|
186
200
|
metadata: {}
|
187
|
-
post_install_message:
|
201
|
+
post_install_message:
|
188
202
|
rdoc_options: []
|
189
203
|
require_paths:
|
190
204
|
- lib
|
@@ -199,8 +213,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
213
|
- !ruby/object:Gem::Version
|
200
214
|
version: '0'
|
201
215
|
requirements: []
|
202
|
-
rubygems_version: 3.
|
203
|
-
signing_key:
|
216
|
+
rubygems_version: 3.3.3
|
217
|
+
signing_key:
|
204
218
|
specification_version: 4
|
205
219
|
summary: Easily generate XML Sitemaps
|
206
220
|
test_files: []
|