railties 7.0.0 → 7.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -0
- data/MIT-LICENSE +1 -1
- data/lib/rails/application/finisher.rb +0 -1
- data/lib/rails/application.rb +4 -1
- data/lib/rails/autoloaders/inflector.rb +1 -1
- data/lib/rails/autoloaders.rb +40 -36
- data/lib/rails/commands/dbconsole/dbconsole_command.rb +10 -7
- data/lib/rails/gem_version.rb +1 -1
- data/lib/rails/generators/actions.rb +30 -13
- data/lib/rails/generators/app_base.rb +29 -36
- data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/plugin_generator.rb +31 -0
- data/lib/rails/generators/rails/plugin/templates/Gemfile.tt +7 -20
- data/lib/rails.rb +1 -2
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '02971c2aea82d6438c050e658cf682158f9942bd3b2d37a957af8e9869e6e26e'
|
4
|
+
data.tar.gz: f448cdadd24a8c84fded45c69536d451ba1e7921bcde12aafd6dc0ef33c44b0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d199f6437a4650717d50a7a42c76ec847017809ffe1c53e0720c2ae6c9938fbaab00b491c9de61e482b8dca0f10b1c81be3f8d69edfbfd1fdeb9a52322dc89e5
|
7
|
+
data.tar.gz: b076e654baa6d781d0c7668e2f034facc363d14fc4245207e586dcf74fe8fc0c18410b1fdd230d979976b42f53beeef5ac47a05dc9f89b1b69259e246aac49d0
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,30 @@
|
|
1
|
+
## Rails 7.0.1 (January 06, 2022) ##
|
2
|
+
|
3
|
+
* Prevent duplicate entries in plugin Gemfile.
|
4
|
+
|
5
|
+
*Jonathan Hefner*
|
6
|
+
|
7
|
+
* Fix asset pipeline errors for plugin dummy apps.
|
8
|
+
|
9
|
+
*Jonathan Hefner*
|
10
|
+
|
11
|
+
* Fix generated route revocation.
|
12
|
+
|
13
|
+
*Jonathan Hefner*
|
14
|
+
|
15
|
+
* Addresses an issue in which Sidekiq jobs could not reload certain
|
16
|
+
namespaces.
|
17
|
+
|
18
|
+
See [fxn/zeitwerk#198](https://github.com/fxn/zeitwerk/issues/198) for
|
19
|
+
details.
|
20
|
+
|
21
|
+
*Xavier Noria*
|
22
|
+
|
23
|
+
* Fix plugin generator to a plugin that pass all the tests.
|
24
|
+
|
25
|
+
*Rafael Mendonça França*
|
26
|
+
|
27
|
+
|
1
28
|
## Rails 7.0.0 (December 15, 2021) ##
|
2
29
|
|
3
30
|
* No changes.
|
data/MIT-LICENSE
CHANGED
data/lib/rails/application.rb
CHANGED
@@ -10,6 +10,7 @@ require "active_support/hash_with_indifferent_access"
|
|
10
10
|
require "active_support/configuration_file"
|
11
11
|
require "rails/engine"
|
12
12
|
require "rails/secrets"
|
13
|
+
require "rails/autoloaders"
|
13
14
|
|
14
15
|
module Rails
|
15
16
|
# An Engine with the responsibility of coordinating the whole boot process.
|
@@ -95,7 +96,7 @@ module Rails
|
|
95
96
|
|
96
97
|
attr_accessor :assets, :sandbox
|
97
98
|
alias_method :sandbox?, :sandbox
|
98
|
-
attr_reader :reloaders, :reloader, :executor
|
99
|
+
attr_reader :reloaders, :reloader, :executor, :autoloaders
|
99
100
|
|
100
101
|
delegate :default_url_options, :default_url_options=, to: :routes
|
101
102
|
|
@@ -117,6 +118,8 @@ module Rails
|
|
117
118
|
@reloader = Class.new(ActiveSupport::Reloader)
|
118
119
|
@reloader.executor = @executor
|
119
120
|
|
121
|
+
@autoloaders = Rails::Autoloaders.new
|
122
|
+
|
120
123
|
# are these actually used?
|
121
124
|
@initial_variable_values = initial_variable_values
|
122
125
|
@block = block
|
data/lib/rails/autoloaders.rb
CHANGED
@@ -1,44 +1,48 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "zeitwerk"
|
4
|
-
|
5
3
|
module Rails
|
6
|
-
|
4
|
+
class Autoloaders # :nodoc:
|
7
5
|
require_relative "autoloaders/inflector"
|
8
6
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
7
|
+
include Enumerable
|
8
|
+
|
9
|
+
attr_reader :main, :once
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
# This `require` delays loading the library on purpose.
|
13
|
+
#
|
14
|
+
# In Rails 7.0.0, railties/lib/rails.rb loaded Zeitwerk as a side-effect,
|
15
|
+
# but a couple of edge cases related to Bundler and Bootsnap showed up.
|
16
|
+
# They had to do with order of decoration of `Kernel#require`, something
|
17
|
+
# the three of them do.
|
18
|
+
#
|
19
|
+
# Delaying this `require` up to this point is a convenient trade-off.
|
20
|
+
require "zeitwerk"
|
21
|
+
|
22
|
+
@main = Zeitwerk::Loader.new
|
23
|
+
@main.tag = "rails.main"
|
24
|
+
@main.inflector = Inflector
|
25
|
+
|
26
|
+
@once = Zeitwerk::Loader.new
|
27
|
+
@once.tag = "rails.once"
|
28
|
+
@once.inflector = Inflector
|
29
|
+
end
|
30
|
+
|
31
|
+
def each
|
32
|
+
yield main
|
33
|
+
yield once
|
34
|
+
end
|
35
|
+
|
36
|
+
def logger=(logger)
|
37
|
+
each { |loader| loader.logger = logger }
|
38
|
+
end
|
39
|
+
|
40
|
+
def log!
|
41
|
+
each(&:log!)
|
42
|
+
end
|
43
|
+
|
44
|
+
def zeitwerk_enabled?
|
45
|
+
true
|
42
46
|
end
|
43
47
|
end
|
44
48
|
end
|
@@ -97,15 +97,18 @@ module Rails
|
|
97
97
|
def db_config
|
98
98
|
return @db_config if defined?(@db_config)
|
99
99
|
|
100
|
-
#
|
101
|
-
# first
|
102
|
-
|
103
|
-
|
104
|
-
|
100
|
+
# If the user provided a database, use that. Otherwise find
|
101
|
+
# the first config in the database.yml
|
102
|
+
if database
|
103
|
+
@db_config = configurations.configs_for(env_name: environment, name: database, include_hidden: true)
|
104
|
+
else
|
105
|
+
@db_config = configurations.find_db_config(environment)
|
106
|
+
end
|
105
107
|
|
106
108
|
unless @db_config
|
109
|
+
missing_db = database ? "'#{database}' database is not" : "No databases are"
|
107
110
|
raise ActiveRecord::AdapterNotSpecified,
|
108
|
-
"
|
111
|
+
"#{missing_db} configured for '#{environment}'. Available configuration: #{configurations.inspect}"
|
109
112
|
end
|
110
113
|
|
111
114
|
@db_config
|
@@ -116,7 +119,7 @@ module Rails
|
|
116
119
|
end
|
117
120
|
|
118
121
|
def database
|
119
|
-
@options
|
122
|
+
@options[:database]
|
120
123
|
end
|
121
124
|
|
122
125
|
private
|
data/lib/rails/gem_version.rb
CHANGED
@@ -279,26 +279,32 @@ module Rails
|
|
279
279
|
# route "root 'welcome#index'"
|
280
280
|
# route "root 'admin#index'", namespace: :admin
|
281
281
|
def route(routing_code, namespace: nil)
|
282
|
-
|
283
|
-
|
282
|
+
namespace = Array(namespace)
|
283
|
+
namespace_pattern = route_namespace_pattern(namespace)
|
284
|
+
routing_code = namespace.reverse.reduce(routing_code) do |code, name|
|
285
|
+
"namespace :#{name} do\n#{rebase_indentation(code, 2)}end"
|
284
286
|
end
|
285
287
|
|
286
288
|
log :route, routing_code
|
287
289
|
|
288
|
-
after_pattern = Array(namespace).each_with_index.reverse_each.reduce(nil) do |pattern, (ns, i)|
|
289
|
-
margin = "\\#{i + 1}[ ]{2}"
|
290
|
-
"(?:(?:^[ ]*\n|^#{margin}.*\n)*?^(#{margin})namespace :#{ns} do\n#{pattern})?"
|
291
|
-
end.then do |pattern|
|
292
|
-
/^([ ]*).+\.routes\.draw do[ ]*\n#{pattern}/
|
293
|
-
end
|
294
|
-
|
295
290
|
in_root do
|
296
|
-
if
|
297
|
-
base_indent, *,
|
298
|
-
|
291
|
+
if namespace_match = match_file("config/routes.rb", namespace_pattern)
|
292
|
+
base_indent, *, existing_block_indent = namespace_match.captures.compact.map(&:length)
|
293
|
+
existing_line_pattern = /^[ ]{,#{existing_block_indent}}\S.+\n?/
|
294
|
+
routing_code = rebase_indentation(routing_code, base_indent + 2).gsub(existing_line_pattern, "")
|
295
|
+
namespace_pattern = /#{Regexp.escape namespace_match.to_s}/
|
299
296
|
end
|
300
297
|
|
301
|
-
inject_into_file "config/routes.rb", routing_code, after:
|
298
|
+
inject_into_file "config/routes.rb", routing_code, after: namespace_pattern, verbose: false, force: false
|
299
|
+
|
300
|
+
if behavior == :revoke && namespace.any? && namespace_match
|
301
|
+
empty_block_pattern = /(#{namespace_pattern})((?:\s*end\n){1,#{namespace.size}})/
|
302
|
+
gsub_file "config/routes.rb", empty_block_pattern, verbose: false, force: true do |matched|
|
303
|
+
beginning, ending = empty_block_pattern.match(matched).captures
|
304
|
+
ending.sub!(/\A\s*end\n/, "") while !ending.empty? && beginning.sub!(/^[ ]*namespace .+ do\n\s*\z/, "")
|
305
|
+
beginning + ending
|
306
|
+
end
|
307
|
+
end
|
302
308
|
end
|
303
309
|
end
|
304
310
|
|
@@ -363,6 +369,7 @@ module Rails
|
|
363
369
|
return "#{value}\n" unless value.is_a?(String)
|
364
370
|
"#{value.strip_heredoc.indent(amount).chomp}\n"
|
365
371
|
end
|
372
|
+
alias rebase_indentation optimize_indentation
|
366
373
|
|
367
374
|
# Indent the +Gemfile+ to the depth of @indentation
|
368
375
|
def indentation # :doc:
|
@@ -387,6 +394,16 @@ module Rails
|
|
387
394
|
def match_file(path, pattern)
|
388
395
|
File.read(path).match(pattern) if File.exist?(path)
|
389
396
|
end
|
397
|
+
|
398
|
+
def route_namespace_pattern(namespace)
|
399
|
+
namespace.each_with_index.reverse_each.reduce(nil) do |pattern, (name, i)|
|
400
|
+
cummulative_margin = "\\#{i + 1}[ ]{2}"
|
401
|
+
blank_or_indented_line = "^[ ]*\n|^#{cummulative_margin}.*\n"
|
402
|
+
"(?:(?:#{blank_or_indented_line})*?^(#{cummulative_margin})namespace :#{name} do\n#{pattern})?"
|
403
|
+
end.then do |pattern|
|
404
|
+
/^([ ]*).+\.routes\.draw do[ ]*\n#{pattern}/
|
405
|
+
end
|
406
|
+
end
|
390
407
|
end
|
391
408
|
end
|
392
409
|
end
|
@@ -108,16 +108,18 @@ module Rails
|
|
108
108
|
|
109
109
|
private
|
110
110
|
def gemfile_entries # :doc:
|
111
|
-
[
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
111
|
+
[
|
112
|
+
rails_gemfile_entry,
|
113
|
+
asset_pipeline_gemfile_entry,
|
114
|
+
database_gemfile_entry,
|
115
|
+
web_server_gemfile_entry,
|
116
|
+
javascript_gemfile_entry,
|
117
|
+
hotwire_gemfile_entry,
|
118
|
+
css_gemfile_entry,
|
119
|
+
jbuilder_gemfile_entry,
|
120
|
+
psych_gemfile_entry,
|
121
|
+
cable_gemfile_entry,
|
122
|
+
].flatten.compact.select(&@gem_filter)
|
121
123
|
end
|
122
124
|
|
123
125
|
def builder # :doc:
|
@@ -159,7 +161,8 @@ module Rails
|
|
159
161
|
end
|
160
162
|
|
161
163
|
def database_gemfile_entry # :doc:
|
162
|
-
return
|
164
|
+
return if options[:skip_active_record]
|
165
|
+
|
163
166
|
gem_name, gem_version = gem_for_database
|
164
167
|
GemfileEntry.version gem_name, gem_version,
|
165
168
|
"Use #{options[:database]} as the database for Active Record"
|
@@ -170,15 +173,13 @@ module Rails
|
|
170
173
|
end
|
171
174
|
|
172
175
|
def asset_pipeline_gemfile_entry
|
173
|
-
return
|
176
|
+
return if options[:skip_asset_pipeline]
|
174
177
|
|
175
178
|
if options[:asset_pipeline] == "sprockets"
|
176
179
|
GemfileEntry.floats "sprockets-rails",
|
177
180
|
"The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]"
|
178
181
|
elsif options[:asset_pipeline] == "propshaft"
|
179
182
|
GemfileEntry.floats "propshaft", "The modern asset pipeline for Rails [https://github.com/rails/propshaft]"
|
180
|
-
else
|
181
|
-
[]
|
182
183
|
end
|
183
184
|
end
|
184
185
|
|
@@ -264,20 +265,13 @@ module Rails
|
|
264
265
|
new(name, nil, comment, path: path)
|
265
266
|
end
|
266
267
|
|
267
|
-
def version
|
268
|
-
version = super
|
269
|
-
|
270
|
-
if version.is_a?(Array)
|
271
|
-
version.join('", "')
|
272
|
-
else
|
273
|
-
version
|
274
|
-
end
|
275
|
-
end
|
276
|
-
|
277
268
|
def to_s
|
278
|
-
[
|
279
|
-
("# "
|
280
|
-
|
269
|
+
[
|
270
|
+
(comment.gsub(/^/, "# ").chomp + "\n" if comment),
|
271
|
+
("# " if commented_out),
|
272
|
+
"gem \"#{name}\"",
|
273
|
+
*Array(version).map { |constraint| ", \"#{constraint}\"" },
|
274
|
+
*options.map { |key, value| ", #{key}: #{value.inspect}" },
|
281
275
|
].compact.join
|
282
276
|
end
|
283
277
|
end
|
@@ -314,12 +308,12 @@ module Rails
|
|
314
308
|
end
|
315
309
|
|
316
310
|
def jbuilder_gemfile_entry
|
317
|
-
return
|
311
|
+
return if options[:skip_jbuilder]
|
318
312
|
GemfileEntry.new "jbuilder", nil, "Build JSON APIs with ease [https://github.com/rails/jbuilder]", {}, options[:api]
|
319
313
|
end
|
320
314
|
|
321
315
|
def javascript_gemfile_entry
|
322
|
-
return
|
316
|
+
return if options[:skip_javascript]
|
323
317
|
|
324
318
|
if adjusted_javascript_option == "importmap"
|
325
319
|
GemfileEntry.floats "importmap-rails", "Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]"
|
@@ -329,7 +323,7 @@ module Rails
|
|
329
323
|
end
|
330
324
|
|
331
325
|
def hotwire_gemfile_entry
|
332
|
-
return
|
326
|
+
return if options[:skip_javascript] || options[:skip_hotwire]
|
333
327
|
|
334
328
|
turbo_rails_entry =
|
335
329
|
GemfileEntry.floats "turbo-rails", "Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]"
|
@@ -355,7 +349,7 @@ module Rails
|
|
355
349
|
end
|
356
350
|
|
357
351
|
def css_gemfile_entry
|
358
|
-
return
|
352
|
+
return unless options[:css]
|
359
353
|
|
360
354
|
if !using_node? && options[:css] == "tailwind"
|
361
355
|
GemfileEntry.floats "tailwindcss-rails", "Use Tailwind CSS [https://github.com/rails/tailwindcss-rails]"
|
@@ -365,7 +359,7 @@ module Rails
|
|
365
359
|
end
|
366
360
|
|
367
361
|
def psych_gemfile_entry
|
368
|
-
return
|
362
|
+
return unless defined?(Rubinius)
|
369
363
|
|
370
364
|
comment = "Use Psych as the YAML engine, instead of Syck, so serialized " \
|
371
365
|
"data can be read safely from different rubies (see http://git.io/uuLVag)"
|
@@ -373,11 +367,10 @@ module Rails
|
|
373
367
|
end
|
374
368
|
|
375
369
|
def cable_gemfile_entry
|
376
|
-
return
|
370
|
+
return if options[:skip_action_cable]
|
371
|
+
|
377
372
|
comment = "Use Redis adapter to run Action Cable in production"
|
378
|
-
|
379
|
-
gems << GemfileEntry.new("redis", "~> 4.0", comment, {}, true)
|
380
|
-
gems
|
373
|
+
GemfileEntry.new("redis", "~> 4.0", comment, {}, true)
|
381
374
|
end
|
382
375
|
|
383
376
|
def bundle_command(command, env = {})
|
@@ -8,7 +8,7 @@ require "active_support/core_ext/integer/time"
|
|
8
8
|
Rails.application.configure do
|
9
9
|
# Settings specified here will take precedence over those in config/application.rb.
|
10
10
|
|
11
|
-
# Turn false under Spring and add config.action_view.cache_template_loading = true
|
11
|
+
# Turn false under Spring and add config.action_view.cache_template_loading = true.
|
12
12
|
config.cache_classes = true
|
13
13
|
|
14
14
|
# Eager loading loads your whole application. When running a single test locally,
|
@@ -226,6 +226,10 @@ module Rails
|
|
226
226
|
def initialize(*args)
|
227
227
|
@dummy_path = nil
|
228
228
|
super
|
229
|
+
|
230
|
+
if !engine? || !with_dummy_app?
|
231
|
+
self.options = options.merge(skip_asset_pipeline: true).freeze
|
232
|
+
end
|
229
233
|
end
|
230
234
|
|
231
235
|
public_task :set_default_accessors!
|
@@ -309,6 +313,33 @@ module Rails
|
|
309
313
|
end
|
310
314
|
|
311
315
|
private
|
316
|
+
def gemfile_entries
|
317
|
+
[
|
318
|
+
rails_gemfile_entry,
|
319
|
+
simplify_gemfile_entries(
|
320
|
+
database_gemfile_entry,
|
321
|
+
asset_pipeline_gemfile_entry,
|
322
|
+
),
|
323
|
+
].flatten.compact
|
324
|
+
end
|
325
|
+
|
326
|
+
def rails_gemfile_entry
|
327
|
+
if options[:skip_gemspec]
|
328
|
+
super
|
329
|
+
elsif rails_prerelease?
|
330
|
+
super.dup.tap do |entry|
|
331
|
+
entry.comment = <<~COMMENT
|
332
|
+
Your gem is dependent on a prerelease version of Rails. Once you can lock this
|
333
|
+
dependency down to a specific version, move it to your gemspec.
|
334
|
+
COMMENT
|
335
|
+
end
|
336
|
+
end
|
337
|
+
end
|
338
|
+
|
339
|
+
def simplify_gemfile_entries(*gemfile_entries)
|
340
|
+
gemfile_entries.flatten.compact.map { |entry| GemfileEntry.floats(entry.name) }
|
341
|
+
end
|
342
|
+
|
312
343
|
def create_dummy_app(path = nil)
|
313
344
|
dummy_path(path) if path
|
314
345
|
|
@@ -1,32 +1,19 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
3
|
+
<% unless options[:skip_gemspec] -%>
|
3
4
|
|
4
|
-
<% if options[:skip_gemspec] -%>
|
5
|
-
<%= "# " if rails_prerelease? -%>gem "rails", "<%= Array(rails_version_specifier).join("', '") %>"
|
6
|
-
<% else -%>
|
7
5
|
# Specify your gem's dependencies in <%= name %>.gemspec.
|
8
6
|
gemspec
|
9
7
|
<% end -%>
|
10
|
-
<%
|
11
|
-
|
12
|
-
group :development do
|
13
|
-
gem "<%= gem_for_database[0] %>"
|
14
|
-
end
|
15
|
-
<% end -%>
|
16
|
-
|
17
|
-
<% if rails_prerelease? -%>
|
18
|
-
# Your gem is dependent on a prerelease version of Rails. Once you can lock this
|
19
|
-
# dependency down to a specific version, move it to your gemspec.
|
20
|
-
<% gemfile_entries.each do |gemfile_entry| -%>
|
8
|
+
<% gemfile_entries.each do |gemfile_entry| %>
|
21
9
|
<%= gemfile_entry %>
|
22
|
-
<% end -%>
|
23
|
-
|
24
10
|
<% end -%>
|
25
11
|
<% if RUBY_ENGINE == "ruby" -%>
|
26
|
-
|
27
|
-
#
|
12
|
+
|
13
|
+
# Start debugger with binding.b [https://github.com/ruby/debug]
|
14
|
+
# gem "debug", ">= 1.0.0"
|
28
15
|
<% end -%>
|
29
|
-
<% if RUBY_PLATFORM.match(/bccwin|cygwin|emx|mingw|mswin|wince|java/) -%>
|
16
|
+
<% if RUBY_PLATFORM.match?(/bccwin|cygwin|emx|mingw|mswin|wince|java/) -%>
|
30
17
|
|
31
|
-
gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby]
|
18
|
+
gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ]
|
32
19
|
<% end -%>
|
data/lib/rails.rb
CHANGED
@@ -12,7 +12,6 @@ require "active_support/core_ext/object/blank"
|
|
12
12
|
|
13
13
|
require "rails/application"
|
14
14
|
require "rails/version"
|
15
|
-
require "rails/autoloaders"
|
16
15
|
|
17
16
|
require "active_support/railtie"
|
18
17
|
require "action_dispatch/railtie"
|
@@ -115,7 +114,7 @@ module Rails
|
|
115
114
|
end
|
116
115
|
|
117
116
|
def autoloaders
|
118
|
-
|
117
|
+
application.autoloaders
|
119
118
|
end
|
120
119
|
end
|
121
120
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: railties
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.0.
|
4
|
+
version: 7.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 7.0.
|
19
|
+
version: 7.0.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 7.0.
|
26
|
+
version: 7.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: actionpack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 7.0.
|
33
|
+
version: 7.0.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 7.0.
|
40
|
+
version: 7.0.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - '='
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 7.0.
|
103
|
+
version: 7.0.1
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - '='
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 7.0.
|
110
|
+
version: 7.0.1
|
111
111
|
description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
|
112
112
|
email: david@loudthinking.com
|
113
113
|
executables:
|
@@ -422,10 +422,10 @@ licenses:
|
|
422
422
|
- MIT
|
423
423
|
metadata:
|
424
424
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
425
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.0.
|
426
|
-
documentation_uri: https://api.rubyonrails.org/v7.0.
|
425
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.0.1/railties/CHANGELOG.md
|
426
|
+
documentation_uri: https://api.rubyonrails.org/v7.0.1/
|
427
427
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
428
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.0.
|
428
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.0.1/railties
|
429
429
|
rubygems_mfa_required: 'true'
|
430
430
|
post_install_message:
|
431
431
|
rdoc_options:
|