sitemap_generator 6.0.2 → 6.1.0
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.
- checksums.yaml +4 -4
- data/CHANGES.md +4 -0
- data/README.md +39 -5
- data/VERSION +1 -1
- data/lib/sitemap_generator.rb +9 -8
- data/lib/sitemap_generator/adapters/google_storage_adapter.rb +37 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d08b16f794edd543800c56dd8b2827c6b4ea4fb85721b18e3b675c4a5599a9d
|
4
|
+
data.tar.gz: ce55fb33969d09c5e2d9ca4b841f511b6ecb9a365a64ec20964394266bcee305
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fe5e90c200a165349a424cfbe919bb11613419acad18d068c8406c8998b22c965b80bb7a16caf20e4c59da44595abeae91f4d7555992f6f249cd4665d036cd4
|
7
|
+
data.tar.gz: 7f9493d43d626dde991e35f3b552541be9154d22c5a94c55820b50f023b647207167a3dccafeff2a5402c57fa2bd0c4cd6bac2f644ecf6b823fdc1d6716b714e
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
### 6.1.0
|
2
|
+
|
3
|
+
* Support uploading files to Google Cloud Storage [#326](https://github.com/kjvarga/sitemap_generator/pull/326) and [#340](https://github.com/kjvarga/sitemap_generator/pull/340)
|
4
|
+
|
1
5
|
### 6.0.2
|
2
6
|
|
3
7
|
* Resolve `BigDecimal.new is deprecated` warnings in Ruby 2.5 [#305](https://github.com/kjvarga/sitemap_generator/pull/305).
|
data/README.md
CHANGED
@@ -80,6 +80,12 @@ Successful ping of Bing
|
|
80
80
|
+ [Sitemaps with no Index File](#sitemaps-with-no-index-file)
|
81
81
|
+ [Upload Sitemaps to a Remote Host using Adapters](#upload-sitemaps-to-a-remote-host-using-adapters)
|
82
82
|
- [Supported Adapters](#supported-adapters)
|
83
|
+
* [`SitemapGenerator::FileAdapter`](#sitemapgeneratorfileadapter)
|
84
|
+
* [`SitemapGenerator::FogAdapter`](#sitemapgeneratorfogadapter)
|
85
|
+
* [`SitemapGenerator::S3Adapter`](#sitemapgenerators3adapter)
|
86
|
+
* [`SitemapGenerator::AwsSdkAdapter`](#sitemapgeneratorawssdkadapter)
|
87
|
+
* [`SitemapGenerator::WaveAdapter`](#sitemapgeneratorwaveadapter)
|
88
|
+
* [`SitemapGenerator::GoogleStorageAdapter`](#sitemapgeneratorgooglestorageadapter)
|
83
89
|
- [An Example of Using an Adapter](#an-example-of-using-an-adapter)
|
84
90
|
+ [Generating Multiple Sitemaps](#generating-multiple-sitemaps)
|
85
91
|
* [Sitemap Configuration](#sitemap-configuration)
|
@@ -329,24 +335,24 @@ directory.
|
|
329
335
|
|
330
336
|
#### Supported Adapters
|
331
337
|
|
332
|
-
|
338
|
+
##### `SitemapGenerator::FileAdapter`
|
333
339
|
|
334
340
|
Standard adapter, writes out to a file.
|
335
341
|
|
336
|
-
|
342
|
+
##### `SitemapGenerator::FogAdapter`
|
337
343
|
|
338
344
|
Uses `Fog::Storage` to upload to any service supported by Fog.
|
339
345
|
|
340
346
|
You must `require 'fog'` in your sitemap config before using this adapter,
|
341
347
|
or `require` another library that defines `Fog::Storage`.
|
342
348
|
|
343
|
-
|
349
|
+
##### `SitemapGenerator::S3Adapter`
|
344
350
|
|
345
351
|
Uses `Fog::Storage` to upload to Amazon S3 storage.
|
346
352
|
|
347
353
|
You must `require 'fog-aws'` in your sitemap config before using this adapter.
|
348
354
|
|
349
|
-
|
355
|
+
##### `SitemapGenerator::AwsSdkAdapter`
|
350
356
|
|
351
357
|
Uses `Aws::S3::Resource` to upload to Amazon S3 storage. Includes automatic detection of your AWS
|
352
358
|
credentials using `Aws::Credentials`.
|
@@ -364,7 +370,7 @@ directory.
|
|
364
370
|
)
|
365
371
|
```
|
366
372
|
|
367
|
-
|
373
|
+
##### `SitemapGenerator::WaveAdapter`
|
368
374
|
|
369
375
|
Uses `CarrierWave::Uploader::Base` to upload to any service supported by CarrierWave, for example,
|
370
376
|
Amazon S3, Rackspace Cloud Files, and MongoDB's GridF.
|
@@ -374,6 +380,31 @@ directory.
|
|
374
380
|
|
375
381
|
Some documentation exists [on the wiki page][remote_hosts].
|
376
382
|
|
383
|
+
##### `SitemapGenerator::GoogleStorageAdapter`
|
384
|
+
|
385
|
+
Uses [`Google::Cloud::Storage`][google_cloud_storage_gem] to upload to Google Cloud storage.
|
386
|
+
|
387
|
+
You must `require 'google/cloud/storage'` in your sitemap config before using this adapter.
|
388
|
+
|
389
|
+
An example of using this adapter in your sitemap configuration with options:
|
390
|
+
|
391
|
+
```ruby
|
392
|
+
SitemapGenerator::Sitemap.adapter = SitemapGenerator::GoogleStorageAdapter.new(
|
393
|
+
credentials: 'path/to/keyfile.json',
|
394
|
+
project_id: 'google_account_project_id',
|
395
|
+
bucket: 'name_of_bucket'
|
396
|
+
)
|
397
|
+
```
|
398
|
+
Also, inline with Google Authentication options, it can also pick credentials from environment variables. All [supported environment variables][google_cloud_storage_authentication] can be used, for example: `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_CREDENTIALS`. An example of using this adapter with the environment variables is:
|
399
|
+
|
400
|
+
```ruby
|
401
|
+
SitemapGenerator::Sitemap.adapter = SitemapGenerator::GoogleStorageAdapter.new(
|
402
|
+
bucket: 'name_of_bucket'
|
403
|
+
)
|
404
|
+
```
|
405
|
+
|
406
|
+
All options other than the `:bucket` option are passed to the `Google::Cloud::Storage.new` initializer giving you maximum configurability. See the [Google Cloud Storage initializer][google_cloud_storage_initializer] for supported options.
|
407
|
+
|
377
408
|
#### An Example of Using an Adapter
|
378
409
|
|
379
410
|
1. Please see [this wiki page][remote_hosts] for more information about setting up SitemapGenerator to upload to a
|
@@ -1120,3 +1151,6 @@ Copyright (c) Karl Varga released under the MIT license
|
|
1120
1151
|
[iso_4217]:http://en.wikipedia.org/wiki/ISO_4217
|
1121
1152
|
[media]:https://developers.google.com/webmasters/smartphone-sites/details
|
1122
1153
|
[expires]:https://support.google.com/customsearch/answer/2631051?hl=en
|
1154
|
+
[google_cloud_storage_gem]:https://rubygems.org/gems/google-cloud-storage
|
1155
|
+
[google_cloud_storage_authentication]:https://googleapis.dev/ruby/google-cloud-storage/latest/file.AUTHENTICATION.html
|
1156
|
+
[google_cloud_storage_initializer]:https://github.com/googleapis/google-cloud-ruby/blob/master/google-cloud-storage/lib/google/cloud/storage.rb
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
6.0
|
1
|
+
6.1.0
|
data/lib/sitemap_generator.rb
CHANGED
@@ -7,14 +7,15 @@ require 'sitemap_generator/application'
|
|
7
7
|
require 'sitemap_generator/sitemap_location'
|
8
8
|
|
9
9
|
module SitemapGenerator
|
10
|
-
autoload(:Interpreter,
|
11
|
-
autoload(:FileAdapter,
|
12
|
-
autoload(:S3Adapter,
|
13
|
-
autoload(:AwsSdkAdapter,
|
14
|
-
autoload(:WaveAdapter,
|
15
|
-
autoload(:FogAdapter,
|
16
|
-
autoload(:
|
17
|
-
autoload(:
|
10
|
+
autoload(:Interpreter, 'sitemap_generator/interpreter')
|
11
|
+
autoload(:FileAdapter, 'sitemap_generator/adapters/file_adapter')
|
12
|
+
autoload(:S3Adapter, 'sitemap_generator/adapters/s3_adapter')
|
13
|
+
autoload(:AwsSdkAdapter, 'sitemap_generator/adapters/aws_sdk_adapter')
|
14
|
+
autoload(:WaveAdapter, 'sitemap_generator/adapters/wave_adapter')
|
15
|
+
autoload(:FogAdapter, 'sitemap_generator/adapters/fog_adapter')
|
16
|
+
autoload(:GoogleStorageAdapter, 'sitemap_generator/adapters/google_storage_adapter')
|
17
|
+
autoload(:BigDecimal, 'sitemap_generator/core_ext/big_decimal')
|
18
|
+
autoload(:Numeric, 'sitemap_generator/core_ext/numeric')
|
18
19
|
|
19
20
|
SitemapError = Class.new(StandardError)
|
20
21
|
SitemapFullError = Class.new(SitemapError)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
if !defined?(Google::Cloud::Storage)
|
2
|
+
raise "Error: `Google::Cloud::Storage` is not defined.\n\n"\
|
3
|
+
"Please `require 'google/cloud/storage'` - or another library that defines this class."
|
4
|
+
end
|
5
|
+
|
6
|
+
module SitemapGenerator
|
7
|
+
# Class for uploading sitemaps to a Google Storage using `google-cloud-storage` gem.
|
8
|
+
class GoogleStorageAdapter
|
9
|
+
# Requires Google::Cloud::Storage to be defined.
|
10
|
+
#
|
11
|
+
# @param [Hash] opts Google::Cloud::Storage configuration options.
|
12
|
+
# @option :bucket [String] Required. Name of Google Storage Bucket where the file is to be uploaded.
|
13
|
+
#
|
14
|
+
# All options other than the `:bucket` option are passed to the `Google::Cloud::Storage.new`
|
15
|
+
# initializer. See https://googleapis.dev/ruby/google-cloud-storage/latest/file.AUTHENTICATION.html
|
16
|
+
# for all the supported environment variables and https://github.com/googleapis/google-cloud-ruby/blob/master/google-cloud-storage/lib/google/cloud/storage.rb
|
17
|
+
# for supported options.
|
18
|
+
#
|
19
|
+
# Suggested Options:
|
20
|
+
# @option :credentials [String] Path to Google service account JSON file, or JSON contents.
|
21
|
+
# @option :project_id [String] Google Accounts project id where the storage bucket resides.
|
22
|
+
def initialize(opts = {})
|
23
|
+
opts = opts.clone
|
24
|
+
@bucket = opts.delete(:bucket)
|
25
|
+
@storage_options = opts
|
26
|
+
end
|
27
|
+
|
28
|
+
# Call with a SitemapLocation and string data
|
29
|
+
def write(location, raw_data)
|
30
|
+
SitemapGenerator::FileAdapter.new.write(location, raw_data)
|
31
|
+
|
32
|
+
storage = Google::Cloud::Storage.new(@storage_options)
|
33
|
+
bucket = storage.bucket(@bucket)
|
34
|
+
bucket.create_file(location.path, location.path_in_public, acl: 'public')
|
35
|
+
end
|
36
|
+
end
|
37
|
+
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.0
|
4
|
+
version: 6.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karl Varga
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: builder
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: google-cloud-storage
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
125
139
|
description: SitemapGenerator is a framework-agnostic XML Sitemap generator written
|
126
140
|
in Ruby with automatic Rails integration. It supports Video, News, Image, Mobile,
|
127
141
|
PageMap and Alternate Links sitemap extensions and includes Rake tasks for managing
|
@@ -141,6 +155,7 @@ files:
|
|
141
155
|
- lib/sitemap_generator/adapters/aws_sdk_adapter.rb
|
142
156
|
- lib/sitemap_generator/adapters/file_adapter.rb
|
143
157
|
- lib/sitemap_generator/adapters/fog_adapter.rb
|
158
|
+
- lib/sitemap_generator/adapters/google_storage_adapter.rb
|
144
159
|
- lib/sitemap_generator/adapters/s3_adapter.rb
|
145
160
|
- lib/sitemap_generator/adapters/wave_adapter.rb
|
146
161
|
- lib/sitemap_generator/application.rb
|