railties 7.0.2.3 → 7.0.3.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 +49 -0
- data/lib/minitest/rails_plugin.rb +1 -1
- data/lib/rails/application/configuration.rb +16 -0
- data/lib/rails/application/finisher.rb +7 -5
- data/lib/rails/application.rb +21 -20
- data/lib/rails/command.rb +1 -1
- data/lib/rails/console/helpers.rb +2 -2
- data/lib/rails/engine.rb +13 -13
- data/lib/rails/gem_version.rb +3 -3
- data/lib/rails/generators/app_base.rb +4 -0
- data/lib/rails/generators/base.rb +3 -3
- data/lib/rails/generators/named_base.rb +2 -2
- data/lib/rails/generators/rails/app/app_generator.rb +6 -3
- data/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt +4 -5
- data/lib/rails/generators.rb +2 -2
- data/lib/rails/paths.rb +1 -1
- data/lib/rails/rack/logger.rb +7 -8
- data/lib/rails/railtie.rb +5 -3
- data/lib/rails/source_annotation_extractor.rb +1 -1
- data/lib/rails/version.rb +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9bbab9c16ee4d39fb4ad931643beee7ca36d194bc31959a852a3300104da24c
|
4
|
+
data.tar.gz: '0887b493b31b2ab787847ea01e142c61e736a489d76139de48f7812bdcce0f21'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afd674b56dcc7b2dc0f3cfd0d046ccad471f7d619dd5ef9877e7fa085ea5da296983322b363e0e40a19549cf97b9f761650340b284a23d904a5b4fa9e521830a
|
7
|
+
data.tar.gz: 40b75b6ebaa9aaf1ac693ca4bd7622b5b50a5089b4f78a9ac44142a1e2639fe91a5eb1c1f85a902d9e274ddfa54e77827a0e56dc295157bb4aa9645ffa774aa5
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,52 @@
|
|
1
|
+
## Rails 7.0.3.1 (July 12, 2022) ##
|
2
|
+
|
3
|
+
* No changes.
|
4
|
+
|
5
|
+
|
6
|
+
## Rails 7.0.3 (May 09, 2022) ##
|
7
|
+
|
8
|
+
* If reloading and eager loading are both enabled, after a reload Rails eager loads again the application code.
|
9
|
+
|
10
|
+
*Xavier Noria*
|
11
|
+
|
12
|
+
* Use `controller_class_path` in `Rails::Generators::NamedBase#route_url`
|
13
|
+
|
14
|
+
The `route_url` method now returns the correct path when generating
|
15
|
+
a namespaced controller with a top-level model using `--model-name`.
|
16
|
+
|
17
|
+
Previously, when running this command:
|
18
|
+
|
19
|
+
``` sh
|
20
|
+
bin/rails generate scaffold_controller Admin/Post --model-name Post
|
21
|
+
```
|
22
|
+
|
23
|
+
the comments above the controller action would look like:
|
24
|
+
|
25
|
+
``` ruby
|
26
|
+
# GET /posts
|
27
|
+
def index
|
28
|
+
@posts = Post.all
|
29
|
+
end
|
30
|
+
```
|
31
|
+
|
32
|
+
afterwards, they now look like this:
|
33
|
+
|
34
|
+
``` ruby
|
35
|
+
# GET /admin/posts
|
36
|
+
def index
|
37
|
+
@posts = Post.all
|
38
|
+
end
|
39
|
+
```
|
40
|
+
|
41
|
+
Fixes #44662.
|
42
|
+
|
43
|
+
*Andrew White*
|
44
|
+
|
45
|
+
## Rails 7.0.2.4 (April 26, 2022) ##
|
46
|
+
|
47
|
+
* No changes.
|
48
|
+
|
49
|
+
|
1
50
|
## Rails 7.0.2.3 (March 08, 2022) ##
|
2
51
|
|
3
52
|
* No changes.
|
@@ -49,7 +49,7 @@ module Minitest
|
|
49
49
|
end
|
50
50
|
|
51
51
|
# Owes great inspiration to test runner trailblazers like RSpec,
|
52
|
-
# minitest-reporters, maxitest and others.
|
52
|
+
# minitest-reporters, maxitest, and others.
|
53
53
|
def self.plugin_rails_init(options)
|
54
54
|
unless options[:full_backtrace] || ENV["BACKTRACE"]
|
55
55
|
# Plugin can run without Rails loaded, check before filtering.
|
@@ -361,6 +361,20 @@ module Rails
|
|
361
361
|
generators.colorize_logging = val
|
362
362
|
end
|
363
363
|
|
364
|
+
# Specifies what class to use to store the session. Possible values
|
365
|
+
# are +:cookie_store+, +:mem_cache_store+, a custom store, or
|
366
|
+
# +:disabled+. +:disabled+ tells Rails not to deal with sessions.
|
367
|
+
#
|
368
|
+
# Additional options will be set as +session_options+:
|
369
|
+
#
|
370
|
+
# config.session_store :cookie_store, key: "_your_app_session"
|
371
|
+
# config.session_options # => {key: "_your_app_session"}
|
372
|
+
#
|
373
|
+
# If a custom store is specified as a symbol, it will be resolved to
|
374
|
+
# the +ActionDispatch::Session+ namespace:
|
375
|
+
#
|
376
|
+
# # use ActionDispatch::Session::MyCustomStore as the session store
|
377
|
+
# config.session_store :my_custom_store
|
364
378
|
def session_store(new_session_store = nil, **options)
|
365
379
|
if new_session_store
|
366
380
|
if new_session_store == :active_record_store
|
@@ -396,6 +410,7 @@ module Rails
|
|
396
410
|
Rails::SourceAnnotationExtractor::Annotation
|
397
411
|
end
|
398
412
|
|
413
|
+
# Configures the ActionDispatch::ContentSecurityPolicy.
|
399
414
|
def content_security_policy(&block)
|
400
415
|
if block_given?
|
401
416
|
@content_security_policy = ActionDispatch::ContentSecurityPolicy.new(&block)
|
@@ -404,6 +419,7 @@ module Rails
|
|
404
419
|
end
|
405
420
|
end
|
406
421
|
|
422
|
+
# Configures the ActionDispatch::PermissionsPolicy.
|
407
423
|
def permissions_policy(&block)
|
408
424
|
if block_given?
|
409
425
|
@permissions_policy = ActionDispatch::PermissionsPolicy.new(&block)
|
@@ -35,10 +35,6 @@ module Rails
|
|
35
35
|
ActiveSupport::Dependencies._autoloaded_tracked_classes << value
|
36
36
|
end
|
37
37
|
end
|
38
|
-
|
39
|
-
autoloader.on_unload do |_cpath, value, _abspath|
|
40
|
-
value.before_remove_const if value.respond_to?(:before_remove_const)
|
41
|
-
end
|
42
38
|
end
|
43
39
|
|
44
40
|
autoloader.setup
|
@@ -72,11 +68,17 @@ module Rails
|
|
72
68
|
app.reloader.prepare!
|
73
69
|
end
|
74
70
|
|
75
|
-
initializer :eager_load! do
|
71
|
+
initializer :eager_load! do |app|
|
76
72
|
if config.eager_load
|
77
73
|
ActiveSupport.run_load_hooks(:before_eager_load, self)
|
78
74
|
Zeitwerk::Loader.eager_load_all
|
79
75
|
config.eager_load_namespaces.each(&:eager_load!)
|
76
|
+
|
77
|
+
unless config.cache_classes
|
78
|
+
app.reloader.after_class_unload do
|
79
|
+
Rails.autoloaders.main.eager_load
|
80
|
+
end
|
81
|
+
end
|
80
82
|
end
|
81
83
|
end
|
82
84
|
|
data/lib/rails/application.rb
CHANGED
@@ -22,12 +22,12 @@ module Rails
|
|
22
22
|
# Rails::Application::Bootstrap) and finishing initializers, after all the others
|
23
23
|
# are executed (check Rails::Application::Finisher).
|
24
24
|
#
|
25
|
-
# == Configuration
|
25
|
+
# == \Configuration
|
26
26
|
#
|
27
27
|
# Besides providing the same configuration as Rails::Engine and Rails::Railtie,
|
28
28
|
# the application object has several specific configurations, for example
|
29
|
-
#
|
30
|
-
#
|
29
|
+
# +cache_classes+, +consider_all_requests_local+, +filter_parameters+,
|
30
|
+
# +logger+, and so forth.
|
31
31
|
#
|
32
32
|
# Check Rails::Application::Configuration to see them all.
|
33
33
|
#
|
@@ -43,21 +43,21 @@ module Rails
|
|
43
43
|
# == Booting process
|
44
44
|
#
|
45
45
|
# The application is also responsible for setting up and executing the booting
|
46
|
-
# process. From the moment you require
|
46
|
+
# process. From the moment you require <tt>config/application.rb</tt> in your app,
|
47
47
|
# the booting process goes like this:
|
48
48
|
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
60
|
-
#
|
49
|
+
# 1. <tt>require "config/boot.rb"</tt> to set up load paths.
|
50
|
+
# 2. +require+ railties and engines.
|
51
|
+
# 3. Define +Rails.application+ as <tt>class MyApp::Application < Rails::Application</tt>.
|
52
|
+
# 4. Run +config.before_configuration+ callbacks.
|
53
|
+
# 5. Load <tt>config/environments/ENV.rb</tt>.
|
54
|
+
# 6. Run +config.before_initialize+ callbacks.
|
55
|
+
# 7. Run <tt>Railtie#initializer</tt> defined by railties, engines, and application.
|
56
|
+
# One by one, each engine sets up its load paths and routes, and runs its <tt>config/initializers/*</tt> files.
|
57
|
+
# 8. Custom <tt>Railtie#initializers</tt> added by railties, engines, and applications are executed.
|
58
|
+
# 9. Build the middleware stack and run +to_prepare+ callbacks.
|
59
|
+
# 10. Run +config.before_eager_load+ and +eager_load!+ if +eager_load+ is +true+.
|
60
|
+
# 11. Run +config.after_initialize+ callbacks.
|
61
61
|
class Application < Engine
|
62
62
|
autoload :Bootstrap, "rails/application/bootstrap"
|
63
63
|
autoload :Configuration, "rails/application/configuration"
|
@@ -175,7 +175,7 @@ module Rails
|
|
175
175
|
# Rails.application.message_verifier('sensitive_data').verify(message)
|
176
176
|
# # => 'my sensible data'
|
177
177
|
#
|
178
|
-
# See the
|
178
|
+
# See the ActiveSupport::MessageVerifier documentation for more information.
|
179
179
|
def message_verifier(verifier_name)
|
180
180
|
@message_verifiers[verifier_name] ||= begin
|
181
181
|
secret = key_generator.generate_key(verifier_name.to_s)
|
@@ -403,13 +403,14 @@ module Rails
|
|
403
403
|
attr_writer :secrets, :credentials
|
404
404
|
|
405
405
|
# The secret_key_base is used as the input secret to the application's key generator, which in turn
|
406
|
-
# is used to create all
|
406
|
+
# is used to create all ActiveSupport::MessageVerifier and ActiveSupport::MessageEncryptor instances,
|
407
|
+
# including the ones that sign and encrypt cookies.
|
407
408
|
#
|
408
409
|
# In development and test, this is randomly generated and stored in a
|
409
410
|
# temporary file in <tt>tmp/development_secret.txt</tt>.
|
410
411
|
#
|
411
|
-
# In all other environments, we look for it first in ENV["SECRET_KEY_BASE"]
|
412
|
-
# then credentials.secret_key_base
|
412
|
+
# In all other environments, we look for it first in <tt>ENV["SECRET_KEY_BASE"]</tt>,
|
413
|
+
# then +credentials.secret_key_base+, and finally +secrets.secret_key_base+. For most applications,
|
413
414
|
# the correct place to store it is in the encrypted credentials file.
|
414
415
|
def secret_key_base
|
415
416
|
if Rails.env.development? || Rails.env.test?
|
data/lib/rails/command.rb
CHANGED
@@ -26,7 +26,7 @@ module Rails
|
|
26
26
|
ENV["RAILS_ENV"].presence || ENV["RACK_ENV"].presence || "development"
|
27
27
|
end
|
28
28
|
|
29
|
-
# Receives a namespace, arguments and the behavior to invoke the command.
|
29
|
+
# Receives a namespace, arguments, and the behavior to invoke the command.
|
30
30
|
def invoke(full_namespace, args = [], **config)
|
31
31
|
namespace = full_namespace = full_namespace.to_s
|
32
32
|
|
@@ -4,14 +4,14 @@ module Rails
|
|
4
4
|
module ConsoleMethods
|
5
5
|
# Gets the helper methods available to the controller.
|
6
6
|
#
|
7
|
-
# This method assumes an +ApplicationController+ exists, and it extends
|
7
|
+
# This method assumes an +ApplicationController+ exists, and that it extends ActionController::Base.
|
8
8
|
def helper
|
9
9
|
ApplicationController.helpers
|
10
10
|
end
|
11
11
|
|
12
12
|
# Gets a new instance of a controller object.
|
13
13
|
#
|
14
|
-
# This method assumes an +ApplicationController+ exists, and it extends
|
14
|
+
# This method assumes an +ApplicationController+ exists, and that it extends ActionController::Base.
|
15
15
|
def controller
|
16
16
|
@controller ||= ApplicationController.new
|
17
17
|
end
|
data/lib/rails/engine.rb
CHANGED
@@ -11,10 +11,10 @@ require "thread"
|
|
11
11
|
module Rails
|
12
12
|
# <tt>Rails::Engine</tt> allows you to wrap a specific Rails application or subset of
|
13
13
|
# functionality and share it with other applications or within a larger packaged application.
|
14
|
-
# Every
|
14
|
+
# Every Rails::Application is just an engine, which allows for simple
|
15
15
|
# feature and application sharing.
|
16
16
|
#
|
17
|
-
# Any <tt>Rails::Engine</tt> is also a
|
17
|
+
# Any <tt>Rails::Engine</tt> is also a Rails::Railtie, so the same
|
18
18
|
# methods (like <tt>rake_tasks</tt> and +generators+) and configuration
|
19
19
|
# options that are available in railties can also be used in engines.
|
20
20
|
#
|
@@ -31,7 +31,7 @@ module Rails
|
|
31
31
|
# end
|
32
32
|
#
|
33
33
|
# Then ensure that this file is loaded at the top of your <tt>config/application.rb</tt>
|
34
|
-
# (or in your +Gemfile+) and it will automatically load models, controllers and helpers
|
34
|
+
# (or in your +Gemfile+), and it will automatically load models, controllers, and helpers
|
35
35
|
# inside +app+, load routes at <tt>config/routes.rb</tt>, load locales at
|
36
36
|
# <tt>config/locales/**/*</tt>, and load tasks at <tt>lib/tasks/**/*</tt>.
|
37
37
|
#
|
@@ -192,13 +192,13 @@ module Rails
|
|
192
192
|
#
|
193
193
|
# == Isolated Engine
|
194
194
|
#
|
195
|
-
# Normally when you create controllers, helpers and models inside an engine, they are treated
|
195
|
+
# Normally when you create controllers, helpers, and models inside an engine, they are treated
|
196
196
|
# as if they were created inside the application itself. This means that all helpers and
|
197
197
|
# named routes from the application will be available to your engine's controllers as well.
|
198
198
|
#
|
199
199
|
# However, sometimes you want to isolate your engine from the application, especially if your engine
|
200
200
|
# has its own router. To do that, you simply need to call +isolate_namespace+. This method requires
|
201
|
-
# you to pass a module where all your controllers, helpers and models should be nested to:
|
201
|
+
# you to pass a module where all your controllers, helpers, and models should be nested to:
|
202
202
|
#
|
203
203
|
# module MyEngine
|
204
204
|
# class Engine < Rails::Engine
|
@@ -236,9 +236,9 @@ module Rails
|
|
236
236
|
# +articles_path+, like you would do with your main application.
|
237
237
|
#
|
238
238
|
# To make this behavior consistent with other parts of the framework,
|
239
|
-
# isolated engines also have an effect on
|
239
|
+
# isolated engines also have an effect on ActiveModel::Naming. In a
|
240
240
|
# normal Rails app, when you use a namespaced model such as
|
241
|
-
# <tt>Namespace::Article</tt>,
|
241
|
+
# <tt>Namespace::Article</tt>, ActiveModel::Naming will generate
|
242
242
|
# names with the prefix "namespace". In an isolated engine, the prefix will
|
243
243
|
# be omitted in URL helpers and form fields, for convenience.
|
244
244
|
#
|
@@ -442,7 +442,7 @@ module Rails
|
|
442
442
|
end
|
443
443
|
|
444
444
|
# Load console and invoke the registered hooks.
|
445
|
-
# Check
|
445
|
+
# Check Rails::Railtie.console for more info.
|
446
446
|
def load_console(app = self)
|
447
447
|
require "rails/console/app"
|
448
448
|
require "rails/console/helpers"
|
@@ -451,14 +451,14 @@ module Rails
|
|
451
451
|
end
|
452
452
|
|
453
453
|
# Load Rails runner and invoke the registered hooks.
|
454
|
-
# Check
|
454
|
+
# Check Rails::Railtie.runner for more info.
|
455
455
|
def load_runner(app = self)
|
456
456
|
run_runner_blocks(app)
|
457
457
|
self
|
458
458
|
end
|
459
459
|
|
460
|
-
# Load Rake
|
461
|
-
# Check
|
460
|
+
# Load Rake and railties tasks, and invoke the registered hooks.
|
461
|
+
# Check Rails::Railtie.rake_tasks for more info.
|
462
462
|
def load_tasks(app = self)
|
463
463
|
require "rake"
|
464
464
|
run_tasks_blocks(app)
|
@@ -466,7 +466,7 @@ module Rails
|
|
466
466
|
end
|
467
467
|
|
468
468
|
# Load Rails generators and invoke the registered hooks.
|
469
|
-
# Check
|
469
|
+
# Check Rails::Railtie.generators for more info.
|
470
470
|
def load_generators(app = self)
|
471
471
|
require "rails/generators"
|
472
472
|
run_generators_blocks(app)
|
@@ -475,7 +475,7 @@ module Rails
|
|
475
475
|
end
|
476
476
|
|
477
477
|
# Invoke the server registered hooks.
|
478
|
-
# Check
|
478
|
+
# Check Rails::Railtie.server for more info.
|
479
479
|
def load_server(app = self)
|
480
480
|
run_server_blocks(app)
|
481
481
|
self
|
data/lib/rails/gem_version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Rails
|
4
|
-
# Returns the version of
|
4
|
+
# Returns the currently loaded version of Rails as a <tt>Gem::Version</tt>.
|
5
5
|
def self.gem_version
|
6
6
|
Gem::Version.new VERSION::STRING
|
7
7
|
end
|
@@ -9,8 +9,8 @@ module Rails
|
|
9
9
|
module VERSION
|
10
10
|
MAJOR = 7
|
11
11
|
MINOR = 0
|
12
|
-
TINY =
|
13
|
-
PRE = "
|
12
|
+
TINY = 3
|
13
|
+
PRE = "1"
|
14
14
|
|
15
15
|
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
|
16
16
|
end
|
@@ -239,6 +239,10 @@ module Rails
|
|
239
239
|
options[:skip_asset_pipeline] || options[:asset_pipeline] != "sprockets"
|
240
240
|
end
|
241
241
|
|
242
|
+
def skip_propshaft?
|
243
|
+
options[:skip_asset_pipeline] || options[:asset_pipeline] != "propshaft"
|
244
|
+
end
|
245
|
+
|
242
246
|
|
243
247
|
class GemfileEntry < Struct.new(:name, :version, :comment, :options, :commented_out)
|
244
248
|
def initialize(name, version, comment, options = {}, commented_out = false)
|
@@ -94,7 +94,7 @@ module Rails
|
|
94
94
|
#
|
95
95
|
# The first and last part used to find the generator to be invoked are
|
96
96
|
# guessed based on class invokes hook_for, as noticed in the example above.
|
97
|
-
# This can be customized with two options:
|
97
|
+
# This can be customized with two options: +:in+ and +:as+.
|
98
98
|
#
|
99
99
|
# Let's suppose you are creating a generator that needs to invoke the
|
100
100
|
# controller generator from test unit. Your first attempt is:
|
@@ -108,7 +108,7 @@ module Rails
|
|
108
108
|
# "test_unit:awesome", "test_unit"
|
109
109
|
#
|
110
110
|
# Which is not the desired lookup. You can change it by providing the
|
111
|
-
#
|
111
|
+
# +:as+ option:
|
112
112
|
#
|
113
113
|
# class AwesomeGenerator < Rails::Generators::Base
|
114
114
|
# hook_for :test_framework, as: :controller
|
@@ -119,7 +119,7 @@ module Rails
|
|
119
119
|
# "test_unit:controller", "test_unit"
|
120
120
|
#
|
121
121
|
# Similarly, if you want it to also look up in the rails namespace, you
|
122
|
-
# just need to provide the
|
122
|
+
# just need to provide the +:in+ value:
|
123
123
|
#
|
124
124
|
# class AwesomeGenerator < Rails::Generators::Base
|
125
125
|
# hook_for :test_framework, in: :rails, as: :controller
|
@@ -127,7 +127,7 @@ module Rails
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def route_url # :doc:
|
130
|
-
@route_url ||=
|
130
|
+
@route_url ||= controller_class_path.collect { |dname| "/" + dname }.join + "/" + plural_file_name
|
131
131
|
end
|
132
132
|
|
133
133
|
def url_helper_prefix # :doc:
|
@@ -202,7 +202,7 @@ module Rails
|
|
202
202
|
end
|
203
203
|
|
204
204
|
# Add a class collisions name to be checked on class initialization. You
|
205
|
-
# can supply a hash with a
|
205
|
+
# can supply a hash with a +:prefix+ or +:suffix+ to be tested.
|
206
206
|
#
|
207
207
|
# ==== Examples
|
208
208
|
#
|
@@ -138,7 +138,7 @@ module Rails
|
|
138
138
|
template "config/storage.yml"
|
139
139
|
end
|
140
140
|
|
141
|
-
if skip_sprockets? && !assets_config_exist
|
141
|
+
if skip_sprockets? && skip_propshaft? && !assets_config_exist
|
142
142
|
remove_file "config/initializers/assets.rb"
|
143
143
|
end
|
144
144
|
|
@@ -457,9 +457,12 @@ module Rails
|
|
457
457
|
end
|
458
458
|
end
|
459
459
|
|
460
|
-
def
|
461
|
-
if skip_sprockets?
|
460
|
+
def delete_assets_initializer_skipping_sprockets_and_propshaft
|
461
|
+
if skip_sprockets? && skip_propshaft?
|
462
462
|
remove_file "config/initializers/assets.rb"
|
463
|
+
end
|
464
|
+
|
465
|
+
if skip_sprockets?
|
463
466
|
remove_file "app/assets/config/manifest.js"
|
464
467
|
remove_dir "app/assets/config"
|
465
468
|
remove_file "app/assets/stylesheets/application.css"
|
data/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Be sure to restart your server when you modify this file.
|
2
2
|
|
3
|
-
# Define an application-wide content security policy
|
4
|
-
#
|
5
|
-
# https://
|
3
|
+
# Define an application-wide content security policy.
|
4
|
+
# See the Securing Rails Applications Guide for more information:
|
5
|
+
# https://guides.rubyonrails.org/security.html#content-security-policy-header
|
6
6
|
|
7
7
|
# Rails.application.configure do
|
8
8
|
# config.content_security_policy do |policy|
|
@@ -20,7 +20,6 @@
|
|
20
20
|
# config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s }
|
21
21
|
# config.content_security_policy_nonce_directives = %w(script-src)
|
22
22
|
#
|
23
|
-
# # Report
|
24
|
-
# # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
|
23
|
+
# # Report violations without enforcing the policy.
|
25
24
|
# # config.content_security_policy_report_only = true
|
26
25
|
# end
|
data/lib/rails/generators.rb
CHANGED
@@ -253,8 +253,8 @@ module Rails
|
|
253
253
|
invoke_fallbacks_for(name, base) || invoke_fallbacks_for(context, name)
|
254
254
|
end
|
255
255
|
|
256
|
-
# Receives a namespace, arguments and the behavior to invoke the generator.
|
257
|
-
# It's used as the default entry point for generate, destroy and update
|
256
|
+
# Receives a namespace, arguments, and the behavior to invoke the generator.
|
257
|
+
# It's used as the default entry point for generate, destroy, and update
|
258
258
|
# commands.
|
259
259
|
def invoke(namespace, args = ARGV, config = {})
|
260
260
|
names = namespace.to_s.split(":")
|
data/lib/rails/paths.rb
CHANGED
@@ -12,7 +12,7 @@ module Rails
|
|
12
12
|
# root.add "app/controllers", eager_load: true
|
13
13
|
#
|
14
14
|
# The above command creates a new root object and adds "app/controllers" as a path.
|
15
|
-
# This means we can get a
|
15
|
+
# This means we can get a Rails::Paths::Path object back like below:
|
16
16
|
#
|
17
17
|
# path = root["app/controllers"]
|
18
18
|
# path.eager_load? # => true
|
data/lib/rails/rack/logger.rb
CHANGED
@@ -31,13 +31,17 @@ module Rails
|
|
31
31
|
private
|
32
32
|
def call_app(request, env) # :doc:
|
33
33
|
instrumenter = ActiveSupport::Notifications.instrumenter
|
34
|
-
instrumenter.start "request.action_dispatch", request: request
|
34
|
+
instrumenter_state = instrumenter.start "request.action_dispatch", request: request
|
35
|
+
instrumenter_finish = -> () {
|
36
|
+
instrumenter.finish_with_state(instrumenter_state, "request.action_dispatch", request: request)
|
37
|
+
}
|
38
|
+
|
35
39
|
logger.info { started_request_message(request) }
|
36
40
|
status, headers, body = @app.call(env)
|
37
|
-
body = ::Rack::BodyProxy.new(body
|
41
|
+
body = ::Rack::BodyProxy.new(body, &instrumenter_finish)
|
38
42
|
[status, headers, body]
|
39
43
|
rescue Exception
|
40
|
-
|
44
|
+
instrumenter_finish.call
|
41
45
|
raise
|
42
46
|
ensure
|
43
47
|
ActiveSupport::LogSubscriber.flush_all!
|
@@ -65,11 +69,6 @@ module Rails
|
|
65
69
|
end
|
66
70
|
end
|
67
71
|
|
68
|
-
def finish(request)
|
69
|
-
instrumenter = ActiveSupport::Notifications.instrumenter
|
70
|
-
instrumenter.finish "request.action_dispatch", request: request
|
71
|
-
end
|
72
|
-
|
73
72
|
def logger
|
74
73
|
Rails.logger
|
75
74
|
end
|
data/lib/rails/railtie.rb
CHANGED
@@ -24,7 +24,7 @@ module Rails
|
|
24
24
|
# * creating initializers
|
25
25
|
# * configuring a Rails framework for the application, like setting a generator
|
26
26
|
# * adding <tt>config.*</tt> keys to the environment
|
27
|
-
# * setting up a subscriber with
|
27
|
+
# * setting up a subscriber with ActiveSupport::Notifications
|
28
28
|
# * adding Rake tasks
|
29
29
|
#
|
30
30
|
# == Creating a Railtie
|
@@ -129,7 +129,7 @@ module Rails
|
|
129
129
|
# == Application and Engine
|
130
130
|
#
|
131
131
|
# An engine is nothing more than a railtie with some initializers already set. And since
|
132
|
-
#
|
132
|
+
# Rails::Application is an engine, the same configuration described here can be
|
133
133
|
# used in both.
|
134
134
|
#
|
135
135
|
# Be sure to look at the documentation of those specific classes for more information.
|
@@ -214,13 +214,15 @@ module Rails
|
|
214
214
|
end
|
215
215
|
|
216
216
|
def respond_to_missing?(name, _)
|
217
|
+
return super if abstract_railtie?
|
218
|
+
|
217
219
|
instance.respond_to?(name) || super
|
218
220
|
end
|
219
221
|
|
220
222
|
# If the class method does not have a method, then send the method call
|
221
223
|
# to the Railtie instance.
|
222
224
|
def method_missing(name, *args, &block)
|
223
|
-
if instance.respond_to?(name)
|
225
|
+
if !abstract_railtie? && instance.respond_to?(name)
|
224
226
|
instance.public_send(name, *args, &block)
|
225
227
|
else
|
226
228
|
super
|
@@ -70,7 +70,7 @@ module Rails
|
|
70
70
|
#
|
71
71
|
# If +options+ has a <tt>:tag</tt> flag, it will be passed to each annotation's +to_s+.
|
72
72
|
#
|
73
|
-
# See
|
73
|
+
# See SourceAnnotationExtractor#find_in for a list of file extensions that will be taken into account.
|
74
74
|
#
|
75
75
|
# This class method is the single entry point for the <tt>rails notes</tt> command.
|
76
76
|
def self.enumerate(tag = nil, options = {})
|
data/lib/rails/version.rb
CHANGED
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.3.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: 2022-
|
11
|
+
date: 2022-07-12 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.3.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.3.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.3.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.3.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.3.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.3.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.3.1/railties/CHANGELOG.md
|
426
|
+
documentation_uri: https://api.rubyonrails.org/v7.0.3.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.3.1/railties
|
429
429
|
rubygems_mfa_required: 'true'
|
430
430
|
post_install_message:
|
431
431
|
rdoc_options:
|
@@ -444,7 +444,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
444
444
|
- !ruby/object:Gem::Version
|
445
445
|
version: '0'
|
446
446
|
requirements: []
|
447
|
-
rubygems_version: 3.
|
447
|
+
rubygems_version: 3.3.3
|
448
448
|
signing_key:
|
449
449
|
specification_version: 4
|
450
450
|
summary: Tools for creating, working with, and running Rails applications.
|