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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +107 -61
  3. data/README.md +176 -171
  4. data/VERSION +1 -1
  5. data/lib/capistrano/sitemap_generator.rb +2 -0
  6. data/lib/sitemap_generator/adapters/active_storage_adapter.rb +31 -0
  7. data/lib/sitemap_generator/adapters/aws_sdk_adapter.rb +29 -13
  8. data/lib/sitemap_generator/adapters/file_adapter.rb +12 -13
  9. data/lib/sitemap_generator/adapters/fog_adapter.rb +9 -7
  10. data/lib/sitemap_generator/adapters/google_storage_adapter.rb +8 -5
  11. data/lib/sitemap_generator/adapters/s3_adapter.rb +23 -18
  12. data/lib/sitemap_generator/adapters/wave_adapter.rb +8 -6
  13. data/lib/sitemap_generator/application.rb +9 -3
  14. data/lib/sitemap_generator/builder/sitemap_file.rb +41 -31
  15. data/lib/sitemap_generator/builder/sitemap_index_file.rb +31 -23
  16. data/lib/sitemap_generator/builder/sitemap_index_url.rb +10 -9
  17. data/lib/sitemap_generator/builder/sitemap_url.rb +130 -80
  18. data/lib/sitemap_generator/builder.rb +7 -3
  19. data/lib/sitemap_generator/core_ext/big_decimal.rb +40 -33
  20. data/lib/sitemap_generator/core_ext/numeric.rb +52 -46
  21. data/lib/sitemap_generator/core_ext.rb +2 -0
  22. data/lib/sitemap_generator/helpers/number_helper.rb +84 -76
  23. data/lib/sitemap_generator/interpreter.rb +22 -18
  24. data/lib/sitemap_generator/link_set.rb +114 -113
  25. data/lib/sitemap_generator/railtie.rb +4 -1
  26. data/lib/sitemap_generator/simple_namer.rb +8 -6
  27. data/lib/sitemap_generator/sitemap_location.rb +52 -40
  28. data/lib/sitemap_generator/tasks.rb +16 -26
  29. data/lib/sitemap_generator/templates.rb +11 -9
  30. data/lib/sitemap_generator/utilities.rb +46 -24
  31. data/lib/sitemap_generator.rb +42 -27
  32. data/lib/tasks/sitemap_generator_tasks.rake +2 -0
  33. data/rails/install.rb +2 -0
  34. data/rails/uninstall.rb +2 -0
  35. data/templates/sitemap.rb +3 -1
  36. 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 "Install a default config/sitemap.rb file"
32
- task :install => ['sitemap:require'] do
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 "Delete all Sitemap files in public/ directory"
37
- task :clean => ['sitemap:require'] do
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 "Generate sitemaps and ping search engines."
42
- task :refresh => ['sitemap:create'] do
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' => ['sitemap:create']
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 :create => ['sitemap:require_environment'] do
51
- SitemapGenerator::Interpreter.run(:config_file => ENV["CONFIG_FILE"], :verbose => verbose)
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
- :sitemap_sample => 'sitemap.rb',
11
- }
12
+ sitemap_sample: 'sitemap.rb'
13
+ }.freeze
12
14
 
13
15
  # Dynamically define accessors for each key defined in <tt>FILES</tt>
14
- attr_accessor(*FILES.keys)
15
- FILES.keys.each do |name|
16
- eval <<-END
17
- define_method(:#{name}) do
18
- @#{name} ||= read_template(:#{name})
19
- end
20
- END
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
- module Utilities
3
- extend self
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 "already exists: config/sitemap.rb, file not copied" if verbose
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
- puts "created: config/sitemap.rb" if verbose
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
- if File.exist?(SitemapGenerator.app.root + 'config/sitemap.rb')
20
- File.rm(SitemapGenerator.app.root + 'config/sitemap.rb')
21
- end
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
- FileUtils.rm(Dir[SitemapGenerator.app.root + 'public/sitemap*.xml.gz'])
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(", ")}") unless unknown_keys.empty?
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[(key.to_sym rescue key) || key] = hash.delete(key)
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 ** precision
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 precedence over the second.
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!( other_hash ){|k,o,n| o }
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, $VERBOSE = $VERBOSE, flag
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.gsub!(/_/, ' ')
144
- string.split(/(\W)/).map(&:capitalize).join
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] != nil && strpath[-1].chr != '/'
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
- (string[0, max - 3] || '') + '...'
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
@@ -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 = Class.new(StandardError)
21
- SitemapFullError = Class.new(SitemapError)
22
- SitemapFinalizedError = Class.new(SitemapError)
25
+ class SitemapError < StandardError
26
+ end
27
+
28
+ class SitemapFullError < SitemapError
29
+ end
23
30
 
24
- Utilities.with_warnings(nil) do
25
- VERSION = File.read(File.dirname(__FILE__) + "/../VERSION").strip
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' => 'http://www.google.com/schemas/sitemap-image/1.1',
33
- 'mobile' => 'http://www.google.com/schemas/sitemap-mobile/1.0',
34
- 'news' => 'http://www.google.com/schemas/sitemap-news/0.9',
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' => 'http://www.google.com/schemas/sitemap-video/1.1'
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
- def method_missing(*args, &block)
42
- (@link_set ||= reset!).send(*args, &block)
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
- def respond_to?(name, include_private = false)
46
- (@link_set ||= reset!).respond_to?(name, include_private)
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
- # Use a new LinkSet instance
50
- def reset!
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 = if SitemapGenerator::Utilities.truthy?(ENV['VERBOSE'])
66
- true
67
- elsif SitemapGenerator::Utilities.falsy?(ENV['VERBOSE'])
68
- false
69
- else
70
- nil
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
- self.root = File.expand_path(File.join(File.dirname(__FILE__), '../')) # Root of the install dir, not the Rails app
83
- self.templates = SitemapGenerator::Templates.new(self.root)
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
 
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  load(File.expand_path(File.join(File.dirname(__FILE__), '../sitemap_generator/tasks.rb')))
data/rails/install.rb CHANGED
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Install hook code here
2
4
  SitemapGenerator::Utilities.install_sitemap_rb
data/rails/uninstall.rb CHANGED
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Uninstall hook code here
2
4
  SitemapGenerator::Utilities.uninstall_sitemap_rb
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 = "http://www.example.com"
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: 6.3.0
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: 2022-08-09 00:00:00.000000000 Z
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: '0'
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.3.3
92
+ rubygems_version: 3.4.10
217
93
  signing_key:
218
94
  specification_version: 4
219
95
  summary: Easily generate XML Sitemaps