railties 6.1.6 → 7.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +626 -259
- data/MIT-LICENSE +1 -1
- data/RDOC_MAIN.md +99 -0
- data/README.rdoc +5 -6
- data/lib/minitest/rails_plugin.rb +64 -1
- data/lib/rails/all.rb +0 -1
- data/lib/rails/api/task.rb +35 -4
- data/lib/rails/app_updater.rb +9 -6
- data/lib/rails/application/bootstrap.rb +41 -7
- data/lib/rails/application/configuration.rb +262 -88
- data/lib/rails/application/default_middleware_stack.rb +29 -4
- data/lib/rails/application/dummy_config.rb +19 -0
- data/lib/rails/application/finisher.rb +89 -124
- data/lib/rails/application/routes_reloader.rb +8 -0
- data/lib/rails/application.rb +200 -125
- data/lib/rails/application_controller.rb +3 -3
- data/lib/rails/autoloaders/inflector.rb +21 -0
- data/lib/rails/autoloaders.rb +42 -42
- data/lib/rails/backtrace_cleaner.rb +1 -1
- data/lib/rails/cli.rb +5 -2
- data/lib/rails/code_statistics.rb +2 -2
- data/lib/rails/code_statistics_calculator.rb +10 -1
- data/lib/rails/command/actions.rb +10 -12
- data/lib/rails/command/base.rb +61 -45
- data/lib/rails/command/behavior.rb +1 -1
- data/lib/rails/command/environment_argument.rb +33 -17
- data/lib/rails/command/helpers/editor.rb +17 -12
- data/lib/rails/command.rb +90 -36
- data/lib/rails/commands/about/about_command.rb +14 -0
- data/lib/rails/commands/application/application_command.rb +2 -0
- data/lib/rails/commands/console/console_command.rb +17 -13
- data/lib/rails/commands/credentials/USAGE +53 -53
- data/lib/rails/commands/credentials/credentials_command/diffing.rb +31 -19
- data/lib/rails/commands/credentials/credentials_command.rb +67 -69
- data/lib/rails/commands/db/system/change/change_command.rb +2 -1
- data/lib/rails/commands/dbconsole/dbconsole_command.rb +26 -117
- data/lib/rails/commands/destroy/destroy_command.rb +3 -2
- data/lib/rails/commands/dev/dev_command.rb +1 -6
- data/lib/rails/commands/encrypted/USAGE +15 -20
- data/lib/rails/commands/encrypted/encrypted_command.rb +46 -35
- data/lib/rails/commands/gem_help/USAGE +16 -0
- data/lib/rails/commands/gem_help/gem_help_command.rb +13 -0
- data/lib/rails/commands/generate/generate_command.rb +2 -2
- data/lib/rails/commands/help/USAGE +15 -14
- data/lib/rails/commands/help/help_command.rb +21 -2
- data/lib/rails/commands/initializers/initializers_command.rb +1 -4
- data/lib/rails/commands/middleware/middleware_command.rb +17 -0
- data/lib/rails/commands/new/new_command.rb +2 -0
- data/lib/rails/commands/notes/notes_command.rb +2 -1
- data/lib/rails/commands/plugin/plugin_command.rb +2 -0
- data/lib/rails/commands/rake/rake_command.rb +25 -22
- data/lib/rails/commands/restart/restart_command.rb +14 -0
- data/lib/rails/commands/routes/routes_command.rb +13 -1
- data/lib/rails/commands/runner/USAGE +14 -12
- data/lib/rails/commands/runner/runner_command.rb +34 -21
- data/lib/rails/commands/secret/secret_command.rb +13 -0
- data/lib/rails/commands/secrets/USAGE +44 -49
- data/lib/rails/commands/secrets/secrets_command.rb +20 -38
- data/lib/rails/commands/server/server_command.rb +33 -30
- data/lib/rails/commands/test/USAGE +14 -0
- data/lib/rails/commands/test/test_command.rb +56 -14
- data/lib/rails/commands/unused_routes/unused_routes_command.rb +75 -0
- data/lib/rails/commands/version/version_command.rb +1 -0
- data/lib/rails/configuration.rb +23 -28
- data/lib/rails/console/app.rb +1 -4
- data/lib/rails/console/helpers.rb +2 -2
- data/lib/rails/deprecator.rb +7 -0
- data/lib/rails/engine/configuration.rb +53 -9
- data/lib/rails/engine.rb +63 -48
- data/lib/rails/gem_version.rb +3 -3
- data/lib/rails/generators/actions/create_migration.rb +2 -4
- data/lib/rails/generators/actions.rb +231 -73
- data/lib/rails/generators/active_model.rb +28 -14
- data/lib/rails/generators/app_base.rb +476 -176
- data/lib/rails/generators/app_name.rb +3 -14
- data/lib/rails/generators/base.rb +24 -20
- data/lib/rails/generators/database.rb +39 -1
- data/lib/rails/generators/erb/mailer/templates/layout.html.erb.tt +1 -1
- data/lib/rails/generators/erb/scaffold/scaffold_generator.rb +2 -0
- data/lib/rails/generators/erb/scaffold/templates/_form.html.erb.tt +8 -8
- data/lib/rails/generators/erb/scaffold/templates/edit.html.erb.tt +8 -4
- data/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +11 -28
- data/lib/rails/generators/erb/scaffold/templates/new.html.erb.tt +7 -3
- data/lib/rails/generators/erb/scaffold/templates/partial.html.erb.tt +17 -0
- data/lib/rails/generators/erb/scaffold/templates/show.html.erb.tt +8 -17
- data/lib/rails/generators/erb.rb +1 -1
- data/lib/rails/generators/generated_attribute.rb +57 -9
- data/lib/rails/generators/migration.rb +2 -7
- data/lib/rails/generators/model_helpers.rb +3 -2
- data/lib/rails/generators/named_base.rb +13 -13
- data/lib/rails/generators/rails/app/USAGE +22 -6
- data/lib/rails/generators/rails/app/app_generator.rb +113 -114
- data/lib/rails/generators/rails/app/templates/Dockerfile.tt +103 -0
- data/lib/rails/generators/rails/app/templates/Gemfile.tt +43 -53
- data/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css.tt +2 -2
- data/lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb.tt +2 -2
- data/lib/rails/generators/rails/app/templates/app/models/application_record.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +3 -9
- data/lib/rails/generators/rails/app/templates/app/views/layouts/mailer.html.erb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/bin/rails.tt +1 -4
- data/lib/rails/generators/rails/app/templates/bin/rake.tt +0 -3
- data/lib/rails/generators/rails/app/templates/bin/setup.tt +16 -12
- data/lib/rails/generators/rails/app/templates/config/application.rb.tt +6 -18
- data/lib/rails/generators/rails/app/templates/config/boot.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt +7 -7
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt +5 -5
- data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +7 -9
- data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +4 -4
- data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt +5 -5
- data/lib/rails/generators/rails/app/templates/config/databases/trilogy.yml.tt +59 -0
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +16 -12
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +38 -61
- data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +14 -15
- data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +3 -5
- data/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt +21 -28
- data/lib/rails/generators/rails/app/templates/config/initializers/cors.rb.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt +3 -1
- data/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb.tt +4 -4
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_1.rb.tt +283 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/permissions_policy.rb.tt +11 -9
- data/lib/rails/generators/rails/app/templates/config/locales/en.yml +13 -15
- data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +12 -20
- data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +8 -1
- data/lib/rails/generators/rails/app/templates/config/storage.yml.tt +5 -5
- data/lib/rails/generators/rails/app/templates/db/seeds.rb.tt +6 -4
- data/lib/rails/generators/rails/app/templates/docker-entrypoint.tt +10 -0
- data/lib/rails/generators/rails/app/templates/dockerignore.tt +43 -0
- data/lib/rails/generators/rails/app/templates/gitattributes.tt +0 -5
- data/lib/rails/generators/rails/app/templates/gitignore.tt +7 -9
- data/lib/rails/generators/rails/app/templates/node-version.tt +1 -0
- data/lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt +10 -8
- data/lib/rails/generators/rails/app/templates/test/test_helper.rb.tt +10 -8
- data/lib/rails/generators/rails/application_record/application_record_generator.rb +4 -0
- data/lib/rails/generators/rails/benchmark/benchmark_generator.rb +2 -1
- data/lib/rails/generators/rails/controller/USAGE +12 -4
- data/lib/rails/generators/rails/controller/controller_generator.rb +6 -2
- data/lib/rails/generators/rails/controller/templates/controller.rb.tt +1 -5
- data/lib/rails/generators/rails/credentials/credentials_generator.rb +29 -24
- data/lib/rails/generators/rails/credentials/templates/credentials.yml.tt +8 -0
- data/lib/rails/generators/rails/db/system/change/change_generator.rb +31 -1
- data/lib/rails/generators/rails/encryption_key_file/encryption_key_file_generator.rb +1 -2
- data/lib/rails/generators/rails/generator/templates/%file_name%_generator.rb.tt +1 -1
- data/lib/rails/generators/rails/migration/USAGE +21 -11
- data/lib/rails/generators/rails/model/model_generator.rb +4 -0
- data/lib/rails/generators/rails/plugin/USAGE +17 -6
- data/lib/rails/generators/rails/plugin/plugin_generator.rb +69 -30
- data/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +7 -3
- data/lib/rails/generators/rails/plugin/templates/Gemfile.tt +9 -31
- data/lib/rails/generators/rails/plugin/templates/MIT-LICENSE.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/README.md.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/app/mailers/%namespaced_name%/application_mailer.rb.tt +2 -2
- data/lib/rails/generators/rails/plugin/templates/app/views/layouts/%namespaced_name%/application.html.erb.tt +0 -3
- data/lib/rails/generators/rails/plugin/templates/bin/rails.tt +5 -20
- data/lib/rails/generators/rails/plugin/templates/gitignore.tt +0 -7
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb.tt +2 -2
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/rails/boot.rb.tt +2 -2
- data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +6 -11
- data/lib/rails/generators/rails/resource/resource_generator.rb +6 -0
- data/lib/rails/generators/rails/scaffold/scaffold_generator.rb +2 -20
- data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +1 -1
- data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +1 -5
- data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +6 -10
- data/lib/rails/generators/resource_helpers.rb +2 -2
- data/lib/rails/generators/test_case.rb +2 -2
- data/lib/rails/generators/test_unit/generator/templates/generator_test.rb.tt +1 -1
- data/lib/rails/generators/test_unit/model/templates/fixtures.yml.tt +2 -2
- data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +4 -4
- data/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb.tt +5 -5
- data/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb.tt +7 -7
- data/lib/rails/generators/test_unit/scaffold/templates/system_test.rb.tt +9 -11
- data/lib/rails/generators/testing/{behaviour.rb → behavior.rb} +7 -5
- data/lib/rails/generators.rb +14 -29
- data/lib/rails/health_controller.rb +55 -0
- data/lib/rails/info.rb +2 -2
- data/lib/rails/info_controller.rb +31 -13
- data/lib/rails/initializable.rb +1 -1
- data/lib/rails/mailers_controller.rb +17 -9
- data/lib/rails/paths.rb +14 -11
- data/lib/rails/rack/logger.rb +16 -15
- data/lib/rails/rackup/server.rb +15 -0
- data/lib/rails/railtie/configuration.rb +15 -3
- data/lib/rails/railtie.rb +54 -31
- data/lib/rails/ruby_version_check.rb +5 -3
- data/lib/rails/secrets.rb +10 -8
- data/lib/rails/source_annotation_extractor.rb +68 -19
- data/lib/rails/tasks/engine.rake +8 -8
- data/lib/rails/tasks/framework.rake +4 -12
- data/lib/rails/tasks/log.rake +1 -1
- data/lib/rails/tasks/misc.rake +3 -14
- data/lib/rails/tasks/statistics.rake +8 -5
- data/lib/rails/tasks/tmp.rake +13 -6
- data/lib/rails/tasks/yarn.rake +8 -9
- data/lib/rails/tasks/zeitwerk.rake +14 -42
- data/lib/rails/tasks.rb +0 -2
- data/lib/rails/templates/layouts/application.html.erb +15 -0
- data/lib/rails/templates/rails/mailers/email.html.erb +45 -11
- data/lib/rails/templates/rails/mailers/index.html.erb +14 -7
- data/lib/rails/templates/rails/mailers/mailer.html.erb +11 -5
- data/lib/rails/templates/rails/welcome/index.html.erb +65 -48
- data/lib/rails/test_help.rb +13 -14
- data/lib/rails/test_unit/line_filtering.rb +1 -1
- data/lib/rails/test_unit/railtie.rb +0 -4
- data/lib/rails/test_unit/reporter.rb +6 -2
- data/lib/rails/test_unit/runner.rb +45 -20
- data/lib/rails/test_unit/test_parser.rb +88 -0
- data/lib/rails/test_unit/testing.rake +18 -43
- data/lib/rails/testing/maintain_test_schema.rb +16 -0
- data/lib/rails/version.rb +1 -1
- data/lib/rails/welcome_controller.rb +1 -0
- data/lib/rails/zeitwerk_checker.rb +15 -0
- data/lib/rails.rb +26 -15
- metadata +74 -42
- data/RDOC_MAIN.rdoc +0 -97
- data/lib/rails/.DS_Store +0 -0
- data/lib/rails/application/dummy_erb_compiler.rb +0 -18
- data/lib/rails/command/spellchecker.rb +0 -57
- data/lib/rails/generators/css/assets/assets_generator.rb +0 -15
- data/lib/rails/generators/css/assets/templates/stylesheet.css +0 -4
- data/lib/rails/generators/css/scaffold/scaffold_generator.rb +0 -18
- data/lib/rails/generators/rails/app/templates/app/javascript/channels/consumer.js +0 -6
- data/lib/rails/generators/rails/app/templates/app/javascript/channels/index.js +0 -5
- data/lib/rails/generators/rails/app/templates/app/javascript/packs/application.js.tt +0 -23
- data/lib/rails/generators/rails/app/templates/bin/spring.tt +0 -13
- data/lib/rails/generators/rails/app/templates/bin/yarn.tt +0 -16
- data/lib/rails/generators/rails/app/templates/config/initializers/application_controller_renderer.rb.tt +0 -8
- data/lib/rails/generators/rails/app/templates/config/initializers/backtrace_silencers.rb.tt +0 -8
- data/lib/rails/generators/rails/app/templates/config/initializers/cookies_serializer.rb.tt +0 -5
- data/lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb.tt +0 -4
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_1.rb.tt +0 -67
- data/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt +0 -16
- data/lib/rails/generators/rails/app/templates/config/spring.rb.tt +0 -6
- data/lib/rails/generators/rails/app/templates/package.json.tt +0 -11
- data/lib/rails/generators/rails/assets/USAGE +0 -16
- data/lib/rails/generators/rails/assets/assets_generator.rb +0 -26
- data/lib/rails/generators/rails/assets/templates/stylesheet.css +0 -4
- data/lib/rails/generators/rails/model/USAGE +0 -113
- data/lib/rails/generators/rails/scaffold/templates/scaffold.css +0 -80
- data/lib/rails/tasks/middleware.rake +0 -9
- data/lib/rails/tasks/restart.rake +0 -9
data/lib/rails/engine.rb
CHANGED
@@ -9,12 +9,12 @@ require "pathname"
|
|
9
9
|
require "thread"
|
10
10
|
|
11
11
|
module Rails
|
12
|
-
#
|
12
|
+
# +Rails::Engine+ 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
|
17
|
+
# Any +Rails::Engine+ 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,9 +31,9 @@ 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
|
-
# <tt>config/locales
|
36
|
+
# <tt>config/locales/**/*</tt>, and load tasks at <tt>lib/tasks/**/*</tt>.
|
37
37
|
#
|
38
38
|
# == Configuration
|
39
39
|
#
|
@@ -181,7 +181,7 @@ module Rails
|
|
181
181
|
# it's used as default <tt>:as</tt> option
|
182
182
|
# * rake task for installing migrations <tt>my_engine:install:migrations</tt>
|
183
183
|
#
|
184
|
-
# Engine name is set by default based on class name. For
|
184
|
+
# Engine name is set by default based on class name. For +MyEngine::Engine+ it will be
|
185
185
|
# <tt>my_engine_engine</tt>. You can change it manually using the <tt>engine_name</tt> method:
|
186
186
|
#
|
187
187
|
# module MyEngine
|
@@ -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
|
@@ -231,14 +231,14 @@ module Rails
|
|
231
231
|
# end
|
232
232
|
#
|
233
233
|
# If +MyEngine+ is isolated, the routes above will point to
|
234
|
-
#
|
234
|
+
# +MyEngine::ArticlesController+. You also don't need to use longer
|
235
235
|
# URL helpers like +my_engine_articles_path+. Instead, you should simply use
|
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
|
240
|
-
# normal Rails app, when you use a namespaced model such as
|
241
|
-
#
|
239
|
+
# isolated engines also have an effect on ActiveModel::Naming. In a
|
240
|
+
# normal \Rails app, when you use a namespaced model such as
|
241
|
+
# +Namespace::Article+, 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
|
#
|
@@ -252,7 +252,7 @@ module Rails
|
|
252
252
|
# Additionally, an isolated engine will set its own name according to its
|
253
253
|
# namespace, so <tt>MyEngine::Engine.engine_name</tt> will return
|
254
254
|
# "my_engine". It will also set +MyEngine.table_name_prefix+ to "my_engine_",
|
255
|
-
# meaning for example that
|
255
|
+
# meaning for example that +MyEngine::Article+ will use the
|
256
256
|
# +my_engine_articles+ database table by default.
|
257
257
|
#
|
258
258
|
# == Using Engine's routes outside Engine
|
@@ -300,7 +300,7 @@ module Rails
|
|
300
300
|
#
|
301
301
|
# == Isolated engine's helpers
|
302
302
|
#
|
303
|
-
# Sometimes you may want to isolate engine, but use helpers that are defined for it.
|
303
|
+
# Sometimes you may want to isolate an engine, but use helpers that are defined for it.
|
304
304
|
# If you want to share just a few specific helpers you can add them to application's
|
305
305
|
# helpers in ApplicationController:
|
306
306
|
#
|
@@ -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"
|
@@ -450,23 +450,23 @@ module Rails
|
|
450
450
|
self
|
451
451
|
end
|
452
452
|
|
453
|
-
# Load Rails runner and invoke the registered hooks.
|
454
|
-
# Check
|
453
|
+
# Load \Rails runner and invoke the registered hooks.
|
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)
|
465
465
|
self
|
466
466
|
end
|
467
467
|
|
468
|
-
# Load Rails generators and invoke the registered hooks.
|
469
|
-
# Check
|
468
|
+
# Load \Rails generators and invoke the registered hooks.
|
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,24 +475,15 @@ 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
|
482
482
|
end
|
483
483
|
|
484
484
|
def eager_load!
|
485
|
-
# Already done by Zeitwerk::Loader.eager_load_all.
|
486
|
-
#
|
487
|
-
return if Rails.autoloaders.zeitwerk_enabled?
|
488
|
-
|
489
|
-
config.eager_load_paths.each do |load_path|
|
490
|
-
# Starts after load_path plus a slash, ends before ".rb".
|
491
|
-
relname_range = (load_path.to_s.length + 1)...-3
|
492
|
-
Dir.glob("#{load_path}/**/*.rb").sort.each do |file|
|
493
|
-
require_dependency file[relname_range]
|
494
|
-
end
|
495
|
-
end
|
485
|
+
# Already done by Zeitwerk::Loader.eager_load_all. By now, we leave the
|
486
|
+
# method as a no-op for backwards compatibility.
|
496
487
|
end
|
497
488
|
|
498
489
|
def railties
|
@@ -503,8 +494,7 @@ module Rails
|
|
503
494
|
def helpers
|
504
495
|
@helpers ||= begin
|
505
496
|
helpers = Module.new
|
506
|
-
|
507
|
-
ActionController::Base.modules_for_helpers(all).each do |mod|
|
497
|
+
AbstractController::Helpers.helper_modules_from_paths(helpers_paths).each do |mod|
|
508
498
|
helpers.include(mod)
|
509
499
|
end
|
510
500
|
helpers
|
@@ -579,11 +569,6 @@ module Rails
|
|
579
569
|
$LOAD_PATH.uniq!
|
580
570
|
end
|
581
571
|
|
582
|
-
# Set the paths from which Rails will automatically load source files,
|
583
|
-
# and the load_once paths.
|
584
|
-
#
|
585
|
-
# This needs to be an initializer, since it needs to run once
|
586
|
-
# per engine and get the engine as a block parameter.
|
587
572
|
initializer :set_autoload_paths, before: :bootstrap_hook do
|
588
573
|
ActiveSupport::Dependencies.autoload_paths.unshift(*_all_autoload_paths)
|
589
574
|
ActiveSupport::Dependencies.autoload_once_paths.unshift(*_all_autoload_once_paths)
|
@@ -593,7 +578,7 @@ module Rails
|
|
593
578
|
end
|
594
579
|
|
595
580
|
initializer :set_eager_load_paths, before: :bootstrap_hook do
|
596
|
-
ActiveSupport::Dependencies._eager_load_paths.merge(config.
|
581
|
+
ActiveSupport::Dependencies._eager_load_paths.merge(config.all_eager_load_paths)
|
597
582
|
config.eager_load_paths.freeze
|
598
583
|
end
|
599
584
|
|
@@ -601,6 +586,7 @@ module Rails
|
|
601
586
|
routing_paths = paths["config/routes.rb"].existent
|
602
587
|
external_paths = self.paths["config/routes"].paths
|
603
588
|
routes.draw_paths.concat(external_paths)
|
589
|
+
app.routes.draw_paths.concat(external_paths)
|
604
590
|
|
605
591
|
if routes? || routing_paths.any?
|
606
592
|
app.routes_reloader.paths.unshift(*routing_paths)
|
@@ -623,6 +609,22 @@ module Rails
|
|
623
609
|
end
|
624
610
|
end
|
625
611
|
|
612
|
+
initializer :add_mailer_preview_paths do
|
613
|
+
previews = paths["test/mailers/previews"].existent
|
614
|
+
unless previews.empty?
|
615
|
+
ActiveSupport.on_load(:action_mailer) { self.preview_paths |= previews }
|
616
|
+
end
|
617
|
+
end
|
618
|
+
|
619
|
+
initializer :add_fixture_paths do
|
620
|
+
next if is_a?(Rails::Application)
|
621
|
+
|
622
|
+
fixtures = config.root.join("test", "fixtures")
|
623
|
+
if fixtures_in_root_and_not_in_vendor?(fixtures)
|
624
|
+
ActiveSupport.on_load(:active_record_fixtures) { self.fixture_paths |= ["#{fixtures}/"] }
|
625
|
+
end
|
626
|
+
end
|
627
|
+
|
626
628
|
initializer :prepend_helpers_path do |app|
|
627
629
|
if !isolated? || (app == self)
|
628
630
|
app.config.helpers_paths.unshift(*paths["app/helpers"].existent)
|
@@ -665,12 +667,12 @@ module Rails
|
|
665
667
|
end
|
666
668
|
end
|
667
669
|
|
668
|
-
def routes?
|
670
|
+
def routes? # :nodoc:
|
669
671
|
@routes
|
670
672
|
end
|
671
673
|
|
672
674
|
protected
|
673
|
-
def run_tasks_blocks(*)
|
675
|
+
def run_tasks_blocks(*) # :nodoc:
|
674
676
|
super
|
675
677
|
paths["lib/tasks"].existent.sort.each { |ext| load(ext) }
|
676
678
|
end
|
@@ -686,7 +688,7 @@ module Rails
|
|
686
688
|
paths["db/migrate"].existent.any?
|
687
689
|
end
|
688
690
|
|
689
|
-
def self.find_root_with_flag(flag, root_path, default = nil)
|
691
|
+
def self.find_root_with_flag(flag, root_path, default = nil) # :nodoc:
|
690
692
|
while root_path && File.directory?(root_path) && !File.exist?("#{root_path}/#{flag}")
|
691
693
|
parent = File.dirname(root_path)
|
692
694
|
root_path = parent != root_path && parent
|
@@ -703,21 +705,34 @@ module Rails
|
|
703
705
|
end
|
704
706
|
|
705
707
|
def _all_autoload_once_paths
|
706
|
-
config.
|
708
|
+
config.all_autoload_once_paths.uniq
|
707
709
|
end
|
708
710
|
|
709
711
|
def _all_autoload_paths
|
710
|
-
@_all_autoload_paths ||=
|
712
|
+
@_all_autoload_paths ||= begin
|
713
|
+
autoload_paths = config.all_autoload_paths
|
714
|
+
autoload_paths += config.all_eager_load_paths
|
715
|
+
autoload_paths -= config.all_autoload_once_paths
|
716
|
+
autoload_paths.uniq
|
717
|
+
end
|
711
718
|
end
|
712
719
|
|
713
720
|
def _all_load_paths(add_autoload_paths_to_load_path)
|
714
721
|
@_all_load_paths ||= begin
|
715
|
-
load_paths
|
716
|
-
|
722
|
+
load_paths = config.paths.load_paths
|
723
|
+
if add_autoload_paths_to_load_path
|
724
|
+
load_paths += _all_autoload_paths
|
725
|
+
load_paths += _all_autoload_once_paths
|
726
|
+
end
|
717
727
|
load_paths.uniq
|
718
728
|
end
|
719
729
|
end
|
720
730
|
|
731
|
+
def fixtures_in_root_and_not_in_vendor?(fixtures)
|
732
|
+
fixtures.exist? && fixtures.to_s.start_with?(Rails.root.to_s) &&
|
733
|
+
!fixtures.to_s.start_with?(Rails.root.join("vendor").to_s)
|
734
|
+
end
|
735
|
+
|
721
736
|
def build_request(env)
|
722
737
|
env.merge!(env_config)
|
723
738
|
req = ActionDispatch::Request.new env
|
data/lib/rails/gem_version.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
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 +Gem::Version+.
|
5
5
|
def self.gem_version
|
6
6
|
Gem::Version.new VERSION::STRING
|
7
7
|
end
|
8
8
|
|
9
9
|
module VERSION
|
10
|
-
MAJOR =
|
10
|
+
MAJOR = 7
|
11
11
|
MINOR = 1
|
12
|
-
TINY =
|
12
|
+
TINY = 2
|
13
13
|
PRE = nil
|
14
14
|
|
15
15
|
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
|
@@ -6,7 +6,7 @@ require "thor/actions"
|
|
6
6
|
module Rails
|
7
7
|
module Generators
|
8
8
|
module Actions
|
9
|
-
class CreateMigration < Thor::Actions::CreateFile
|
9
|
+
class CreateMigration < Thor::Actions::CreateFile # :nodoc:
|
10
10
|
def migration_dir
|
11
11
|
File.dirname(@destination)
|
12
12
|
end
|
@@ -39,10 +39,8 @@ module Rails
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def existing_migration
|
42
|
-
@existing_migration ||=
|
43
|
-
@base.class.migration_exists?(migration_dir, migration_file_name) ||
|
42
|
+
@existing_migration ||= @base.class.migration_exists?(migration_dir, migration_file_name) ||
|
44
43
|
File.exist?(@destination) && @destination
|
45
|
-
end
|
46
44
|
end
|
47
45
|
alias :exists? :existing_migration
|
48
46
|
|