sitemap_generator 6.3.0 → 7.1.1
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 +107 -61
- data/README.md +176 -171
- data/VERSION +1 -1
- data/lib/capistrano/sitemap_generator.rb +2 -0
- data/lib/sitemap_generator/adapters/active_storage_adapter.rb +31 -0
- data/lib/sitemap_generator/adapters/aws_sdk_adapter.rb +29 -13
- data/lib/sitemap_generator/adapters/file_adapter.rb +12 -13
- data/lib/sitemap_generator/adapters/fog_adapter.rb +9 -7
- data/lib/sitemap_generator/adapters/google_storage_adapter.rb +8 -5
- data/lib/sitemap_generator/adapters/s3_adapter.rb +23 -18
- data/lib/sitemap_generator/adapters/wave_adapter.rb +8 -6
- data/lib/sitemap_generator/application.rb +9 -3
- data/lib/sitemap_generator/builder/sitemap_file.rb +41 -31
- data/lib/sitemap_generator/builder/sitemap_index_file.rb +31 -23
- data/lib/sitemap_generator/builder/sitemap_index_url.rb +10 -9
- data/lib/sitemap_generator/builder/sitemap_url.rb +130 -80
- data/lib/sitemap_generator/builder.rb +7 -3
- data/lib/sitemap_generator/core_ext/big_decimal.rb +40 -33
- data/lib/sitemap_generator/core_ext/numeric.rb +52 -46
- data/lib/sitemap_generator/core_ext.rb +2 -0
- data/lib/sitemap_generator/helpers/number_helper.rb +84 -76
- data/lib/sitemap_generator/interpreter.rb +22 -18
- data/lib/sitemap_generator/link_set.rb +114 -113
- data/lib/sitemap_generator/railtie.rb +4 -1
- data/lib/sitemap_generator/simple_namer.rb +8 -6
- data/lib/sitemap_generator/sitemap_location.rb +52 -40
- data/lib/sitemap_generator/tasks.rb +16 -26
- data/lib/sitemap_generator/templates.rb +11 -9
- data/lib/sitemap_generator/utilities.rb +46 -24
- data/lib/sitemap_generator.rb +42 -27
- data/lib/tasks/sitemap_generator_tasks.rake +2 -0
- data/rails/install.rb +2 -0
- data/rails/uninstall.rb +2 -0
- data/templates/sitemap.rb +3 -1
- metadata +7 -131
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# require this file to load the tasks
|
|
2
4
|
require 'rake'
|
|
3
5
|
|
|
@@ -8,46 +10,34 @@ namespace :sitemap do
|
|
|
8
10
|
# Require sitemap_generator only. When installed as a plugin the require will fail, so in
|
|
9
11
|
# that case, load the environment first.
|
|
10
12
|
task :require do
|
|
11
|
-
begin
|
|
12
|
-
require 'sitemap_generator'
|
|
13
|
-
rescue LoadError => e
|
|
14
|
-
if defined?(Rails::VERSION)
|
|
15
|
-
Rake::Task['sitemap:require_environment'].invoke
|
|
16
|
-
else
|
|
17
|
-
raise e
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# Require sitemap_generator after loading the Rails environment. We still need the require
|
|
23
|
-
# in case we are installed as a gem and are setup to not automatically be required.
|
|
24
|
-
task :require_environment do
|
|
25
|
-
if defined?(Rails::VERSION)
|
|
26
|
-
Rake::Task['environment'].invoke
|
|
27
|
-
end
|
|
28
13
|
require 'sitemap_generator'
|
|
29
14
|
end
|
|
15
|
+
# In a Rails app, we need to boot Rails.
|
|
16
|
+
# Ensure gem is required in case it wasn't automatically loaded.
|
|
17
|
+
Rake::Task[:require].enhance([:environment]) if defined?(Rails)
|
|
30
18
|
|
|
31
|
-
desc
|
|
32
|
-
task :
|
|
19
|
+
desc 'Install a default config/sitemap.rb file'
|
|
20
|
+
task install: :require do
|
|
21
|
+
# Uses Rake's verbose flag intentionally — this is a file installation utility
|
|
22
|
+
# where Rake's -v/--verbose flag is the appropriate control mechanism.
|
|
33
23
|
SitemapGenerator::Utilities.install_sitemap_rb(verbose)
|
|
34
24
|
end
|
|
35
25
|
|
|
36
|
-
desc
|
|
37
|
-
task :
|
|
26
|
+
desc 'Delete all Sitemap files in public/ directory'
|
|
27
|
+
task clean: :require do
|
|
38
28
|
SitemapGenerator::Utilities.clean_files
|
|
39
29
|
end
|
|
40
30
|
|
|
41
|
-
desc
|
|
42
|
-
task :
|
|
31
|
+
desc 'Generate sitemaps and ping search engines.'
|
|
32
|
+
task refresh: :create do
|
|
43
33
|
SitemapGenerator::Sitemap.ping_search_engines
|
|
44
34
|
end
|
|
45
35
|
|
|
46
36
|
desc "Generate sitemaps but don't ping search engines."
|
|
47
|
-
task 'refresh:no_ping' =>
|
|
37
|
+
task 'refresh:no_ping' => :create
|
|
48
38
|
|
|
49
39
|
desc "Generate sitemaps but don't ping search engines. Alias for refresh:no_ping."
|
|
50
|
-
task :
|
|
51
|
-
SitemapGenerator::Interpreter.run(:
|
|
40
|
+
task create: :require do
|
|
41
|
+
SitemapGenerator::Interpreter.run(config_file: ENV.fetch('CONFIG_FILE', nil))
|
|
52
42
|
end
|
|
53
43
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module SitemapGenerator
|
|
2
4
|
# Provide convenient access to template files. E.g.
|
|
3
5
|
#
|
|
@@ -7,17 +9,17 @@ module SitemapGenerator
|
|
|
7
9
|
# Define an accessor method for each template file.
|
|
8
10
|
class Templates
|
|
9
11
|
FILES = {
|
|
10
|
-
:
|
|
11
|
-
}
|
|
12
|
+
sitemap_sample: 'sitemap.rb'
|
|
13
|
+
}.freeze
|
|
12
14
|
|
|
13
15
|
# Dynamically define accessors for each key defined in <tt>FILES</tt>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
attr_writer(*FILES.keys)
|
|
17
|
+
|
|
18
|
+
FILES.each_key do |name|
|
|
19
|
+
define_method(name) do
|
|
20
|
+
ivar = :"@#{name}"
|
|
21
|
+
instance_variable_get(ivar) || instance_variable_set(ivar, read_template(name))
|
|
22
|
+
end
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
def initialize(root = SitemapGenerator.root)
|
|
@@ -1,29 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module SitemapGenerator
|
|
2
|
-
|
|
3
|
-
|
|
4
|
+
# Internal utility functions: hash merging, string manipulation, byte calculation,
|
|
5
|
+
# and warning suppression. Not part of the public API.
|
|
6
|
+
module Utilities # rubocop:disable Metrics/ModuleLength
|
|
7
|
+
module_function
|
|
4
8
|
|
|
5
9
|
# Copy templates/sitemap.rb to config if not there yet.
|
|
6
|
-
def install_sitemap_rb(verbose=false)
|
|
7
|
-
if File.exist?(SitemapGenerator.app.root + 'config/sitemap.rb')
|
|
8
|
-
puts
|
|
10
|
+
def install_sitemap_rb(verbose = false) # rubocop:disable Style/OptionalBooleanParameter
|
|
11
|
+
if File.exist?(SitemapGenerator.app.root + 'config/sitemap.rb') # rubocop:disable Style/StringConcatenation
|
|
12
|
+
puts 'already exists: config/sitemap.rb, file not copied' if verbose
|
|
9
13
|
else
|
|
10
14
|
FileUtils.cp(
|
|
11
15
|
SitemapGenerator.templates.template_path(:sitemap_sample),
|
|
12
|
-
SitemapGenerator.app.root + 'config/sitemap.rb'
|
|
13
|
-
|
|
16
|
+
SitemapGenerator.app.root + 'config/sitemap.rb' # rubocop:disable Style/StringConcatenation
|
|
17
|
+
)
|
|
18
|
+
puts 'created: config/sitemap.rb' if verbose
|
|
14
19
|
end
|
|
15
20
|
end
|
|
16
21
|
|
|
17
22
|
# Remove config/sitemap.rb if exists.
|
|
18
23
|
def uninstall_sitemap_rb
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
return unless File.exist?(SitemapGenerator.app.root + 'config/sitemap.rb') # rubocop:disable Style/StringConcatenation
|
|
25
|
+
|
|
26
|
+
File.rm(SitemapGenerator.app.root + 'config/sitemap.rb') # rubocop:disable Style/StringConcatenation
|
|
22
27
|
end
|
|
23
28
|
|
|
24
29
|
# Clean sitemap files in output directory.
|
|
25
30
|
def clean_files
|
|
26
|
-
|
|
31
|
+
location = SitemapGenerator::Sitemap.sitemap_location
|
|
32
|
+
dir = location.directory
|
|
33
|
+
base = SitemapGenerator::Sitemap.filename.to_s
|
|
34
|
+
return if base.empty?
|
|
35
|
+
|
|
36
|
+
FileUtils.rm(Dir[File.join(dir, "#{base}*.xml.gz"), File.join(dir, "#{base}*.xml")])
|
|
27
37
|
end
|
|
28
38
|
|
|
29
39
|
# Validate all keys in a hash match *valid keys, raising ArgumentError on a
|
|
@@ -31,7 +41,7 @@ module SitemapGenerator
|
|
|
31
41
|
# strings for keys but assert symbols as keys, this will fail.
|
|
32
42
|
def assert_valid_keys(hash, *valid_keys)
|
|
33
43
|
unknown_keys = hash.keys - [valid_keys].flatten
|
|
34
|
-
raise(ArgumentError, "Unknown key(s): #{unknown_keys.join(
|
|
44
|
+
raise(ArgumentError, "Unknown key(s): #{unknown_keys.join(', ')}") unless unknown_keys.empty?
|
|
35
45
|
end
|
|
36
46
|
|
|
37
47
|
# Return a new hash with all keys converted to symbols, as long as
|
|
@@ -44,7 +54,11 @@ module SitemapGenerator
|
|
|
44
54
|
# to +to_sym+.
|
|
45
55
|
def symbolize_keys!(hash)
|
|
46
56
|
hash.keys.each do |key|
|
|
47
|
-
hash[
|
|
57
|
+
hash[begin
|
|
58
|
+
key.to_sym
|
|
59
|
+
rescue StandardError
|
|
60
|
+
key
|
|
61
|
+
end || key] = hash.delete(key)
|
|
48
62
|
end
|
|
49
63
|
hash
|
|
50
64
|
end
|
|
@@ -69,7 +83,7 @@ module SitemapGenerator
|
|
|
69
83
|
# x.round(2) # => 1.34
|
|
70
84
|
def round(float, precision = nil)
|
|
71
85
|
if precision
|
|
72
|
-
magnitude = 10.0
|
|
86
|
+
magnitude = 10.0**precision
|
|
73
87
|
(float * magnitude).round / magnitude
|
|
74
88
|
else
|
|
75
89
|
float.round
|
|
@@ -95,10 +109,10 @@ module SitemapGenerator
|
|
|
95
109
|
other_hash.merge(hash)
|
|
96
110
|
end
|
|
97
111
|
|
|
98
|
-
# Performs the opposite of <tt>merge</tt>, with the keys and values from the first hash taking
|
|
99
|
-
# Modifies the receiver in place.
|
|
112
|
+
# Performs the opposite of <tt>merge</tt>, with the keys and values from the first hash taking
|
|
113
|
+
# precedence over the second. Modifies the receiver in place.
|
|
100
114
|
def reverse_merge!(hash, other_hash)
|
|
101
|
-
hash.merge!(
|
|
115
|
+
hash.merge!(other_hash) { |_k, o, _n| o }
|
|
102
116
|
end
|
|
103
117
|
|
|
104
118
|
# An object is blank if it's false, empty, or a whitespace string.
|
|
@@ -111,7 +125,7 @@ module SitemapGenerator
|
|
|
111
125
|
# ...to:
|
|
112
126
|
#
|
|
113
127
|
# if !address.blank?
|
|
114
|
-
def blank?(object)
|
|
128
|
+
def blank?(object) # rubocop:disable Metrics/MethodLength
|
|
115
129
|
case object
|
|
116
130
|
when NilClass, FalseClass
|
|
117
131
|
true
|
|
@@ -133,15 +147,17 @@ module SitemapGenerator
|
|
|
133
147
|
|
|
134
148
|
# Sets $VERBOSE for the duration of the block and back to its original value afterwards.
|
|
135
149
|
def with_warnings(flag)
|
|
136
|
-
old_verbose
|
|
150
|
+
old_verbose = $VERBOSE
|
|
151
|
+
$VERBOSE = flag
|
|
137
152
|
yield
|
|
138
153
|
ensure
|
|
139
154
|
$VERBOSE = old_verbose
|
|
140
155
|
end
|
|
141
156
|
|
|
142
157
|
def titleize(string)
|
|
143
|
-
string.
|
|
144
|
-
|
|
158
|
+
result = string.tr('_', ' ')
|
|
159
|
+
result.gsub!(/\b\w/, &:upcase)
|
|
160
|
+
result
|
|
145
161
|
end
|
|
146
162
|
|
|
147
163
|
def truthy?(value)
|
|
@@ -156,8 +172,8 @@ module SitemapGenerator
|
|
|
156
172
|
# Returns a string. Expects a string or Pathname object.
|
|
157
173
|
def append_slash(path)
|
|
158
174
|
strpath = path.to_s
|
|
159
|
-
if strpath[-1]
|
|
160
|
-
strpath
|
|
175
|
+
if !strpath[-1].nil? && strpath[-1].chr != '/'
|
|
176
|
+
"#{strpath}/"
|
|
161
177
|
else
|
|
162
178
|
strpath
|
|
163
179
|
end
|
|
@@ -167,12 +183,18 @@ module SitemapGenerator
|
|
|
167
183
|
# or bigger than max.
|
|
168
184
|
def ellipsis(string, max)
|
|
169
185
|
if string.size > max
|
|
170
|
-
|
|
186
|
+
"#{string[0, max - 3] || ''}..."
|
|
171
187
|
else
|
|
172
188
|
string
|
|
173
189
|
end
|
|
174
190
|
end
|
|
175
191
|
|
|
192
|
+
# Return the current time, using Time.zone if available (Rails), otherwise Time.now.
|
|
193
|
+
def current_time
|
|
194
|
+
zone = defined?(Time.zone) && Time.zone
|
|
195
|
+
zone ? zone.now : Time.now
|
|
196
|
+
end
|
|
197
|
+
|
|
176
198
|
# Return the bytesize length of the string. Ruby 1.8.6 compatible.
|
|
177
199
|
def bytesize(string)
|
|
178
200
|
string.respond_to?(:bytesize) ? string.bytesize : string.length
|
data/lib/sitemap_generator.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'sitemap_generator/simple_namer'
|
|
2
4
|
require 'sitemap_generator/builder'
|
|
3
5
|
require 'sitemap_generator/link_set'
|
|
@@ -6,9 +8,12 @@ require 'sitemap_generator/utilities'
|
|
|
6
8
|
require 'sitemap_generator/application'
|
|
7
9
|
require 'sitemap_generator/sitemap_location'
|
|
8
10
|
|
|
11
|
+
# Top-level namespace for the gem. +SitemapGenerator::Sitemap+ is the public entry point;
|
|
12
|
+
# adapters, builders, and utilities are nested here.
|
|
9
13
|
module SitemapGenerator
|
|
10
14
|
autoload(:Interpreter, 'sitemap_generator/interpreter')
|
|
11
15
|
autoload(:FileAdapter, 'sitemap_generator/adapters/file_adapter')
|
|
16
|
+
autoload(:ActiveStorageAdapter, 'sitemap_generator/adapters/active_storage_adapter') if defined?(::ActiveStorage)
|
|
12
17
|
autoload(:S3Adapter, 'sitemap_generator/adapters/s3_adapter')
|
|
13
18
|
autoload(:AwsSdkAdapter, 'sitemap_generator/adapters/aws_sdk_adapter')
|
|
14
19
|
autoload(:WaveAdapter, 'sitemap_generator/adapters/wave_adapter')
|
|
@@ -17,40 +22,50 @@ module SitemapGenerator
|
|
|
17
22
|
autoload(:BigDecimal, 'sitemap_generator/core_ext/big_decimal')
|
|
18
23
|
autoload(:Numeric, 'sitemap_generator/core_ext/numeric')
|
|
19
24
|
|
|
20
|
-
SitemapError
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
class SitemapError < StandardError
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class SitemapFullError < SitemapError
|
|
29
|
+
end
|
|
23
30
|
|
|
24
|
-
|
|
25
|
-
|
|
31
|
+
class SitemapFinalizedError < SitemapError
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
Utilities.with_warnings(nil) do # rubocop:disable Metrics/BlockLength
|
|
35
|
+
# rubocop:disable Lint/ConstantDefinitionInBlock
|
|
36
|
+
VERSION = File.read("#{File.dirname(__FILE__)}/../VERSION").strip
|
|
26
37
|
MAX_SITEMAP_FILES = 50_000 # max sitemap links per index file
|
|
27
38
|
MAX_SITEMAP_LINKS = 50_000 # max links per sitemap
|
|
28
39
|
MAX_SITEMAP_IMAGES = 1_000 # max images per url
|
|
29
40
|
MAX_SITEMAP_NEWS = 1_000 # max news sitemap per index_file
|
|
30
41
|
MAX_SITEMAP_FILESIZE = 50_000_000 # bytes
|
|
31
42
|
SCHEMAS = {
|
|
32
|
-
'image'
|
|
33
|
-
'mobile'
|
|
34
|
-
'news'
|
|
43
|
+
'image' => 'http://www.google.com/schemas/sitemap-image/1.1',
|
|
44
|
+
'mobile' => 'http://www.google.com/schemas/sitemap-mobile/1.0',
|
|
45
|
+
'news' => 'http://www.google.com/schemas/sitemap-news/0.9',
|
|
35
46
|
'pagemap' => 'http://www.google.com/schemas/sitemap-pagemap/1.0',
|
|
36
|
-
'video'
|
|
37
|
-
}
|
|
47
|
+
'video' => 'http://www.google.com/schemas/sitemap-video/1.1'
|
|
48
|
+
}.freeze
|
|
38
49
|
|
|
39
50
|
# Lazy-initialize the LinkSet instance
|
|
40
|
-
Sitemap = (Class.new do
|
|
41
|
-
|
|
42
|
-
|
|
51
|
+
Sitemap = (Config = Class.new do
|
|
52
|
+
# Use a new LinkSet instance
|
|
53
|
+
def reset!
|
|
54
|
+
@link_set = LinkSet.new
|
|
43
55
|
end
|
|
44
56
|
|
|
45
|
-
|
|
46
|
-
|
|
57
|
+
private
|
|
58
|
+
|
|
59
|
+
def method_missing(name, *args, &block)
|
|
60
|
+
@link_set ||= reset!
|
|
61
|
+
@link_set.respond_to?(name, true) ? @link_set.__send__(name, *args, &block) : super
|
|
47
62
|
end
|
|
48
63
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
@link_set = LinkSet.new
|
|
64
|
+
def respond_to_missing?(name, include_private = false)
|
|
65
|
+
(@link_set ||= reset!).respond_to?(name, include_private) || super
|
|
52
66
|
end
|
|
53
67
|
end).new
|
|
68
|
+
# rubocop:enable Lint/ConstantDefinitionInBlock
|
|
54
69
|
end
|
|
55
70
|
|
|
56
71
|
class << self
|
|
@@ -62,13 +77,12 @@ module SitemapGenerator
|
|
|
62
77
|
# Global default for the verbose setting.
|
|
63
78
|
def self.verbose
|
|
64
79
|
if @verbose.nil?
|
|
65
|
-
@verbose =
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
end
|
|
80
|
+
@verbose =
|
|
81
|
+
if SitemapGenerator::Utilities.truthy?(ENV['VERBOSE'])
|
|
82
|
+
true
|
|
83
|
+
elsif SitemapGenerator::Utilities.falsy?(ENV['VERBOSE'])
|
|
84
|
+
false
|
|
85
|
+
end
|
|
72
86
|
else
|
|
73
87
|
@verbose
|
|
74
88
|
end
|
|
@@ -79,8 +93,9 @@ module SitemapGenerator
|
|
|
79
93
|
!!@yield_sitemap
|
|
80
94
|
end
|
|
81
95
|
|
|
82
|
-
|
|
83
|
-
self.
|
|
96
|
+
# Root of the install dir, not the Rails app
|
|
97
|
+
self.root = File.expand_path(File.join(File.dirname(__FILE__), '../'))
|
|
98
|
+
self.templates = SitemapGenerator::Templates.new(root)
|
|
84
99
|
self.app = SitemapGenerator::Application.new
|
|
85
100
|
end
|
|
86
101
|
|
data/rails/install.rb
CHANGED
data/rails/uninstall.rb
CHANGED
data/templates/sitemap.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# Set the host name for URL creation
|
|
2
|
-
SitemapGenerator::Sitemap.default_host =
|
|
4
|
+
SitemapGenerator::Sitemap.default_host = 'http://www.example.com'
|
|
3
5
|
|
|
4
6
|
SitemapGenerator::Sitemap.create do
|
|
5
7
|
# Put links creation logic here.
|
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:
|
|
4
|
+
version: 7.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Karl Varga
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-07-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: builder
|
|
@@ -24,132 +24,6 @@ dependencies:
|
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '3.0'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: aws-sdk-core
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - ">="
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - ">="
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: aws-sdk-s3
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: fog-aws
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - ">="
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '0'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - ">="
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '0'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
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
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - ">="
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - ">="
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: rake
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - ">="
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0'
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - ">="
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0'
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rspec_junit_formatter
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - ">="
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0'
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - ">="
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0'
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: rspec
|
|
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'
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: webmock
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
142
|
-
requirements:
|
|
143
|
-
- - ">="
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: '0'
|
|
146
|
-
type: :development
|
|
147
|
-
prerelease: false
|
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
-
requirements:
|
|
150
|
-
- - ">="
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: '0'
|
|
153
27
|
description: SitemapGenerator is a framework-agnostic XML Sitemap generator written
|
|
154
28
|
in Ruby with automatic Rails integration. It supports Video, News, Image, Mobile,
|
|
155
29
|
PageMap and Alternate Links sitemap extensions and includes Rake tasks for managing
|
|
@@ -166,6 +40,7 @@ files:
|
|
|
166
40
|
- lib/capistrano/sitemap_generator.rb
|
|
167
41
|
- lib/capistrano/tasks/sitemap_generator.cap
|
|
168
42
|
- lib/sitemap_generator.rb
|
|
43
|
+
- lib/sitemap_generator/adapters/active_storage_adapter.rb
|
|
169
44
|
- lib/sitemap_generator/adapters/aws_sdk_adapter.rb
|
|
170
45
|
- lib/sitemap_generator/adapters/file_adapter.rb
|
|
171
46
|
- lib/sitemap_generator/adapters/fog_adapter.rb
|
|
@@ -197,7 +72,8 @@ files:
|
|
|
197
72
|
homepage: https://github.com/kjvarga/sitemap_generator
|
|
198
73
|
licenses:
|
|
199
74
|
- MIT
|
|
200
|
-
metadata:
|
|
75
|
+
metadata:
|
|
76
|
+
rubygems_mfa_required: 'true'
|
|
201
77
|
post_install_message:
|
|
202
78
|
rdoc_options: []
|
|
203
79
|
require_paths:
|
|
@@ -206,14 +82,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
206
82
|
requirements:
|
|
207
83
|
- - ">="
|
|
208
84
|
- !ruby/object:Gem::Version
|
|
209
|
-
version: '
|
|
85
|
+
version: '2.6'
|
|
210
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
211
87
|
requirements:
|
|
212
88
|
- - ">="
|
|
213
89
|
- !ruby/object:Gem::Version
|
|
214
90
|
version: '0'
|
|
215
91
|
requirements: []
|
|
216
|
-
rubygems_version: 3.
|
|
92
|
+
rubygems_version: 3.4.10
|
|
217
93
|
signing_key:
|
|
218
94
|
specification_version: 4
|
|
219
95
|
summary: Easily generate XML Sitemaps
|