railties 7.1.5.1 → 7.2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +199 -764
- data/lib/minitest/rails_plugin.rb +5 -2
- data/lib/rails/all.rb +1 -3
- data/lib/rails/api/task.rb +6 -4
- data/lib/rails/application/bootstrap.rb +5 -6
- data/lib/rails/application/configuration.rb +68 -33
- data/lib/rails/application/dummy_config.rb +2 -2
- data/lib/rails/application/finisher.rb +7 -0
- data/lib/rails/application.rb +22 -89
- data/lib/rails/backtrace_cleaner.rb +14 -1
- data/lib/rails/cli.rb +0 -1
- data/lib/rails/command.rb +1 -1
- data/lib/rails/commands/app/update_command.rb +102 -0
- data/lib/rails/commands/boot/boot_command.rb +14 -0
- data/lib/rails/commands/console/console_command.rb +2 -21
- data/lib/rails/commands/console/irb_console.rb +146 -0
- data/lib/rails/commands/credentials/credentials_command.rb +2 -2
- data/lib/rails/commands/dbconsole/dbconsole_command.rb +21 -30
- data/lib/rails/commands/devcontainer/devcontainer_command.rb +39 -0
- data/lib/rails/commands/rake/rake_command.rb +1 -1
- data/lib/rails/commands/runner/runner_command.rb +14 -3
- data/lib/rails/commands/server/server_command.rb +5 -3
- data/lib/rails/commands/test/test_command.rb +2 -0
- data/lib/rails/configuration.rb +10 -1
- data/lib/rails/console/app.rb +5 -32
- data/lib/rails/console/helpers.rb +5 -16
- data/lib/rails/console/methods.rb +23 -0
- data/lib/rails/engine.rb +7 -7
- data/lib/rails/gem_version.rb +3 -3
- data/lib/rails/generators/app_base.rb +70 -49
- data/lib/rails/generators/base.rb +5 -1
- data/lib/rails/generators/database.rb +227 -69
- data/lib/rails/generators/erb/scaffold/templates/edit.html.erb.tt +2 -0
- data/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +2 -0
- data/lib/rails/generators/erb/scaffold/templates/new.html.erb.tt +2 -0
- data/lib/rails/generators/generated_attribute.rb +26 -1
- data/lib/rails/generators/rails/app/app_generator.rb +56 -28
- data/lib/rails/generators/rails/app/templates/Dockerfile.tt +22 -15
- data/lib/rails/generators/rails/app/templates/Gemfile.tt +17 -17
- data/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt +4 -0
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +8 -1
- data/lib/rails/generators/rails/app/templates/app/views/pwa/manifest.json.erb.tt +22 -0
- data/lib/rails/generators/rails/app/templates/app/views/pwa/service-worker.js +26 -0
- data/lib/rails/generators/rails/app/templates/bin/brakeman.tt +6 -0
- data/lib/rails/generators/rails/app/templates/bin/rubocop.tt +7 -0
- data/lib/rails/generators/rails/app/templates/bin/setup.tt +6 -2
- data/lib/rails/generators/rails/app/templates/config/application.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +7 -0
- data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +8 -1
- data/lib/rails/generators/rails/app/templates/config/databases/trilogy.yml.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +14 -7
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +8 -0
- data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +8 -5
- data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_2.rb.tt +70 -0
- data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +25 -35
- data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +6 -0
- data/lib/rails/generators/rails/app/templates/docker-entrypoint.tt +5 -0
- data/lib/rails/generators/rails/app/templates/dockerignore.tt +13 -0
- data/lib/rails/generators/rails/app/templates/github/ci.yml.tt +138 -0
- data/lib/rails/generators/rails/app/templates/github/dependabot.yml +12 -0
- data/lib/rails/generators/rails/app/templates/gitignore.tt +3 -3
- data/lib/rails/generators/rails/app/templates/public/406-unsupported-browser.html +66 -0
- data/lib/rails/generators/rails/app/templates/public/icon.png +0 -0
- data/lib/rails/generators/rails/app/templates/public/icon.svg +3 -0
- data/lib/rails/generators/rails/app/templates/rubocop.yml.tt +8 -0
- data/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb.tt +1 -1
- data/lib/rails/generators/rails/controller/controller_generator.rb +1 -1
- data/lib/rails/generators/rails/db/system/change/change_generator.rb +131 -20
- data/lib/rails/generators/rails/devcontainer/devcontainer_generator.rb +166 -0
- data/lib/rails/generators/rails/devcontainer/templates/devcontainer/Dockerfile.tt +3 -0
- data/lib/rails/generators/rails/devcontainer/templates/devcontainer/compose.yaml.tt +47 -0
- data/lib/rails/generators/rails/devcontainer/templates/devcontainer/devcontainer.json.tt +37 -0
- data/lib/rails/generators/rails/migration/migration_generator.rb +4 -0
- data/lib/rails/generators/rails/plugin/plugin_generator.rb +40 -7
- data/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +2 -2
- data/lib/rails/generators/rails/plugin/templates/Gemfile.tt +5 -1
- data/lib/rails/generators/rails/plugin/templates/app/views/layouts/%namespaced_name%/application.html.erb.tt +2 -0
- data/lib/rails/generators/rails/plugin/templates/bin/rubocop.tt +7 -0
- data/lib/rails/generators/rails/plugin/templates/github/ci.yml.tt +103 -0
- data/lib/rails/generators/rails/plugin/templates/github/dependabot.yml +12 -0
- data/lib/rails/generators/rails/plugin/templates/rubocop.yml.tt +8 -0
- data/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +2 -2
- data/lib/rails/generators/test_unit/mailer/templates/functional_test.rb.tt +6 -4
- data/lib/rails/generators/test_unit/mailer/templates/preview.rb.tt +3 -2
- data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +15 -1
- data/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb.tt +2 -2
- data/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb.tt +2 -2
- data/lib/rails/generators/test_unit/scaffold/templates/system_test.rb.tt +2 -0
- data/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb.tt +1 -1
- data/lib/rails/generators/testing/assertions.rb +20 -0
- data/lib/rails/generators/testing/behavior.rb +7 -6
- data/lib/rails/generators.rb +6 -2
- data/lib/rails/health_controller.rb +1 -1
- data/lib/rails/info.rb +2 -2
- data/lib/rails/mailers_controller.rb +14 -1
- data/lib/rails/paths.rb +2 -2
- data/lib/rails/pwa_controller.rb +15 -0
- data/lib/rails/rack/logger.rb +15 -7
- data/lib/rails/railtie/configurable.rb +2 -2
- data/lib/rails/railtie.rb +2 -3
- data/lib/rails/tasks/framework.rake +0 -26
- data/lib/rails/tasks/tmp.rake +1 -1
- data/lib/rails/templates/layouts/application.html.erb +1 -1
- data/lib/rails/templates/rails/mailers/email.html.erb +12 -8
- data/lib/rails/templates/rails/welcome/index.html.erb +4 -2
- data/lib/rails/test_help.rb +2 -4
- data/lib/rails/test_unit/reporter.rb +8 -2
- data/lib/rails/test_unit/runner.rb +26 -2
- data/lib/rails/test_unit/test_parser.rb +45 -0
- data/lib/rails.rb +6 -3
- metadata +42 -35
- data/lib/rails/app_updater.rb +0 -52
- data/lib/rails/commands/secrets/USAGE +0 -61
- data/lib/rails/commands/secrets/secrets_command.rb +0 -47
- data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt +0 -68
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt +0 -54
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt +0 -70
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt +0 -24
- data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt +0 -62
- data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt +0 -53
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_1.rb.tt +0 -280
- data/lib/rails/generators/rails/app/templates/public/apple-touch-icon-precomposed.png +0 -0
- data/lib/rails/generators/rails/app/templates/public/apple-touch-icon.png +0 -0
- data/lib/rails/generators/rails/app/templates/public/favicon.ico +0 -0
- data/lib/rails/ruby_version_check.rb +0 -17
- data/lib/rails/secrets.rb +0 -110
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
<% ruby_on_rails_logo_favicon_data_uri = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIwcHgiIGhlaWdodD0iMzIwcHgiIHZpZXdCb3g9IjAgMCAzMjAgMzIwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPkljb248L3RpdGxlPgogICAgPGcgaWQ9Ikljb24iIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJSdWJ5LU9uLVJhaWxzLUxvZ28iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUuMDAwMDAwLCAyMC4wMDAwMDApIiBmaWxsPSIjRDgxRTAwIj4KICAgICAgICAgICAgPHBhdGggZD0iTTIxLjkzMzA3MDYsMjg1IEwxNjguMTc1NDI2LDI4NSBDMTQ3Ljk0MDg1OCwxNTAuNjkxNzA2IDE5Ni44ODIzODMsNjYuMzE0MjkwMiAzMTUsMzEuODY3NzUzNiBDMzE1LDIxLjc4NTEyODQgMzE1LDMxLjg2Nzc1MzYgMzE1LDIxLjc4NTEyODQgQzE2MS4yNTI4MywyNC45MTE2Mjc4IDYzLjU2Mzg1MzMsMTEyLjY0OTkxOCAyMS45MzMwNzA2LDI4NSBaIiBpZD0iUGF0aCIvPgogICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aCIgcG9pbnRzPSI0MC40MDgyNjQzIDE4NS45MTU3MSAxMi43MzI2NDk0IDE3NC40MDE2NjMgLTEuNDIxMDg1NDdlLTE0IDIwNS40NDI3MSAyOS41NzExOTY2IDIxNi42NDcxMTUiLz4KICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGgiIHBvaW50cz0iMTgwLjQ3MzEwMiAyNjguMDczNjQzIDIwNC45MzYwMTYgMjc2LjQxMDk2NiAyMDQuOTM2MDE2IDI1NC41MDg2NzMgMTgwLjQ4OTY0NCAyNDQuMzM4MTA3Ii8+CiAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJQYXRoIiBwb2ludHM9IjEwMC41ODk1MTkgOTcuMjI4NzYwNiA3Ni42ODQwMTU2IDc5LjE2ODcwMjEgNTUuMjQ0MDc5MSAxMDAuMTgzMTA1IDgxLjUxNDMyMzkgMTE3LjQzMzcyNSIvPgogICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aCIgcG9pbnRzPSIxODQuNTc1Njc5IDE4NC44OTYyOTUgMjA3Ljk1MjAzIDIwMC4yNDY2MSAyMTEuNzI3NzI5IDE4MS4yMDUyNjYgMTg5Ljg2MzY1MyAxNjQuNjg3NDYiLz4KICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGgiIHBvaW50cz0iMjYxLjczNDAxIDY1Ljg5NTk0NDYgMjY5LjM1NDIzNCA4Mi4zMjk1NCAyODUuMzE4MjU2IDcyLjcwNDg1OTYgMjc4LjMxMDEyOSA1Ni45ODI5ODk1Ii8+CiAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJQYXRoIiBwb2ludHM9IjI2MS45MTM3IDE2LjE4NDU0NzMgMjU1LjU5ODQ3OSA3LjEwNTQyNzM2ZS0xNSAyMzIuNzk2MDIgMy40ODg5NjMyMyAyNDAuNDYzODczIDIwLjAyNTI3MjUiLz4KICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGgiIHBvaW50cz0iMjExLjkzNDExOSAxMTEuNTgwNjc1IDIyNi43MjI1NDcgMTI3Ljc5MjYwMSAyMzguMDIzOTI1IDExMy45MDM3MTUgMjIzLjQ2ODM3NSA5Ni41NDY4Njg1Ii8+CiAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJQYXRoIiBwb2ludHM9IjE3OS42ODY4NTggMzguNDk1MjIxOCAxNjQuNjQxOTMxIDIwLjAyNTI3MjUgMTM5Ljg0NzYyIDMyLjU1NTI5OTIgMTU2LjYwMTMyNCA1MC45MjE2NzUzIi8+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=" %>
|
|
2
1
|
<!DOCTYPE html>
|
|
3
2
|
<html>
|
|
4
3
|
<head>
|
|
5
4
|
<title>Ruby on Rails <%= Rails.version %></title>
|
|
6
5
|
<meta charset="utf-8">
|
|
7
6
|
<meta name="viewport" content="width=device-width">
|
|
8
|
-
|
|
7
|
+
|
|
8
|
+
<link rel="icon" href="/icon.png" type="image/png">
|
|
9
|
+
<link rel="apple-touch-icon" href="/icon.png" sizes="512x512">
|
|
9
10
|
|
|
10
11
|
<style type="text/css">
|
|
11
12
|
* {
|
|
@@ -84,6 +85,7 @@
|
|
|
84
85
|
|
|
85
86
|
<ul>
|
|
86
87
|
<li><strong>Rails version:</strong> <%= Rails.version %></li>
|
|
88
|
+
<li><strong>Rack version:</strong> <%= Rack.release %></li>
|
|
87
89
|
<li><strong>Ruby version:</strong> <%= RUBY_DESCRIPTION %></li>
|
|
88
90
|
</ul>
|
|
89
91
|
</body>
|
data/lib/rails/test_help.rb
CHANGED
|
@@ -7,19 +7,17 @@
|
|
|
7
7
|
abort("Abort testing: Your Rails environment is running in production mode!") if Rails.env.production?
|
|
8
8
|
|
|
9
9
|
require "active_support/test_case"
|
|
10
|
-
require "action_controller"
|
|
11
|
-
require "action_controller/test_case"
|
|
12
|
-
require "action_dispatch/testing/integration"
|
|
13
10
|
require "rails/generators/test_case"
|
|
14
|
-
|
|
15
11
|
require "active_support/testing/autorun"
|
|
16
12
|
|
|
17
13
|
require "rails/testing/maintain_test_schema"
|
|
18
14
|
|
|
19
15
|
if defined?(ActiveRecord::Base)
|
|
16
|
+
require "active_record/testing/query_assertions"
|
|
20
17
|
ActiveSupport.on_load(:active_support_test_case) do
|
|
21
18
|
include ActiveRecord::TestDatabases
|
|
22
19
|
include ActiveRecord::TestFixtures
|
|
20
|
+
include ActiveRecord::Assertions::QueryAssertions
|
|
23
21
|
|
|
24
22
|
self.fixture_paths << "#{Rails.root}/test/fixtures/"
|
|
25
23
|
self.file_fixture_path = "#{Rails.root}/test/fixtures/files"
|
|
@@ -8,6 +8,13 @@ module Rails
|
|
|
8
8
|
class_attribute :app_root
|
|
9
9
|
class_attribute :executable, default: "bin/rails test"
|
|
10
10
|
|
|
11
|
+
def prerecord(test_class, test_name)
|
|
12
|
+
super
|
|
13
|
+
if options[:verbose]
|
|
14
|
+
io.print "%s#%s = " % [test_class.name, test_name]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
11
18
|
def record(result)
|
|
12
19
|
super
|
|
13
20
|
|
|
@@ -69,8 +76,7 @@ module Rails
|
|
|
69
76
|
end
|
|
70
77
|
|
|
71
78
|
def format_line(result)
|
|
72
|
-
|
|
73
|
-
"%s#%s = %.2f s = %s" % [klass, result.name, result.time, result.result_code]
|
|
79
|
+
"%.2f s = %s" % [result.time, result.result_code]
|
|
74
80
|
end
|
|
75
81
|
|
|
76
82
|
def format_rerun_snippet(result)
|
|
@@ -9,6 +9,15 @@ require "rails/test_unit/test_parser"
|
|
|
9
9
|
|
|
10
10
|
module Rails
|
|
11
11
|
module TestUnit
|
|
12
|
+
class InvalidTestError < StandardError
|
|
13
|
+
def initialize(path, suggestion)
|
|
14
|
+
super(<<~MESSAGE.squish)
|
|
15
|
+
Could not load test file: #{path}.
|
|
16
|
+
#{suggestion}
|
|
17
|
+
MESSAGE
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
12
21
|
class Runner
|
|
13
22
|
TEST_FOLDERS = [:models, :helpers, :channels, :controllers, :mailers, :integration, :jobs, :mailboxes]
|
|
14
23
|
PATH_ARGUMENT_PATTERN = %r"^(?!/.+/$)[.\w]*[/\\]"
|
|
@@ -48,7 +57,22 @@ module Rails
|
|
|
48
57
|
def load_tests(argv)
|
|
49
58
|
patterns = extract_filters(argv)
|
|
50
59
|
tests = list_tests(patterns)
|
|
51
|
-
tests.to_a.each
|
|
60
|
+
tests.to_a.each do |path|
|
|
61
|
+
abs_path = File.expand_path(path)
|
|
62
|
+
require abs_path
|
|
63
|
+
rescue LoadError => exception
|
|
64
|
+
if exception.path == abs_path
|
|
65
|
+
all_tests = list_tests([default_test_glob])
|
|
66
|
+
corrections = DidYouMean::SpellChecker.new(dictionary: all_tests).correct(path)
|
|
67
|
+
|
|
68
|
+
if corrections.empty?
|
|
69
|
+
raise exception
|
|
70
|
+
end
|
|
71
|
+
raise InvalidTestError.new(path, DidYouMean::Formatter.message_for(corrections))
|
|
72
|
+
else
|
|
73
|
+
raise
|
|
74
|
+
end
|
|
75
|
+
end
|
|
52
76
|
end
|
|
53
77
|
|
|
54
78
|
def compose_filter(runnable, filter)
|
|
@@ -87,7 +111,7 @@ module Rails
|
|
|
87
111
|
end
|
|
88
112
|
|
|
89
113
|
def default_test_exclude_glob
|
|
90
|
-
ENV["DEFAULT_TEST_EXCLUDE"] || "test/{system,dummy}/**/*_test.rb"
|
|
114
|
+
ENV["DEFAULT_TEST_EXCLUDE"] || "test/{system,dummy,fixtures}/**/*_test.rb"
|
|
91
115
|
end
|
|
92
116
|
|
|
93
117
|
def regexp_filter?(arg)
|
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
begin
|
|
4
|
+
require "prism"
|
|
5
|
+
rescue LoadError
|
|
6
|
+
# If Prism isn't available (because of using an older Ruby version) then we'll
|
|
7
|
+
# define a fallback parser using ripper.
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
if defined?(Prism)
|
|
11
|
+
module Rails
|
|
12
|
+
module TestUnit
|
|
13
|
+
# Parse a test file to extract the line ranges of all tests in both
|
|
14
|
+
# method-style (def test_foo) and declarative-style (test "foo" do)
|
|
15
|
+
module TestParser
|
|
16
|
+
# Helper to translate a method object into the path and line range where
|
|
17
|
+
# the method was defined.
|
|
18
|
+
def self.definition_for(method)
|
|
19
|
+
filepath, start_line = method.source_location
|
|
20
|
+
queue = [Prism.parse_file(filepath).value]
|
|
21
|
+
|
|
22
|
+
while (node = queue.shift)
|
|
23
|
+
case node.type
|
|
24
|
+
when :def_node
|
|
25
|
+
if node.location.start_line == start_line
|
|
26
|
+
return [filepath, start_line..node.location.end_line]
|
|
27
|
+
end
|
|
28
|
+
when :call_node
|
|
29
|
+
if node.location.start_line == start_line
|
|
30
|
+
return [filepath, start_line..node.location.end_line]
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
queue.concat(node.compact_child_nodes)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
nil
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# If we have Prism, then we don't need to define the fallback parser using
|
|
44
|
+
# ripper.
|
|
45
|
+
return
|
|
46
|
+
end
|
|
47
|
+
|
|
3
48
|
require "ripper"
|
|
4
49
|
|
|
5
50
|
module Rails
|
data/lib/rails.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require "rails/ruby_version_check"
|
|
4
|
-
|
|
5
3
|
require "pathname"
|
|
6
4
|
|
|
7
5
|
require "active_support"
|
|
@@ -29,12 +27,16 @@ module Rails
|
|
|
29
27
|
extend ActiveSupport::Autoload
|
|
30
28
|
extend ActiveSupport::Benchmarkable
|
|
31
29
|
|
|
32
|
-
autoload :HealthController
|
|
33
30
|
autoload :Info
|
|
34
31
|
autoload :InfoController
|
|
35
32
|
autoload :MailersController
|
|
36
33
|
autoload :WelcomeController
|
|
37
34
|
|
|
35
|
+
eager_autoload do
|
|
36
|
+
autoload :HealthController
|
|
37
|
+
autoload :PwaController
|
|
38
|
+
end
|
|
39
|
+
|
|
38
40
|
class << self
|
|
39
41
|
@application = @app_class = nil
|
|
40
42
|
|
|
@@ -69,6 +71,7 @@ module Rails
|
|
|
69
71
|
# Rails.env # => "development"
|
|
70
72
|
# Rails.env.development? # => true
|
|
71
73
|
# Rails.env.production? # => false
|
|
74
|
+
# Rails.env.local? # => true true for "development" and "test", false for anything else
|
|
72
75
|
def env
|
|
73
76
|
@_env ||= ActiveSupport::EnvironmentInquirer.new(ENV["RAILS_ENV"].presence || ENV["RACK_ENV"].presence || "development")
|
|
74
77
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: railties
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.
|
|
4
|
+
version: 7.2.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Heinemeier Hansson
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: activesupport
|
|
@@ -16,28 +15,28 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - '='
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 7.
|
|
18
|
+
version: 7.2.2.2
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
23
|
- - '='
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 7.
|
|
25
|
+
version: 7.2.2.2
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: actionpack
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
30
|
- - '='
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 7.
|
|
32
|
+
version: 7.2.2.2
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
37
|
- - '='
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 7.
|
|
39
|
+
version: 7.2.2.2
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
41
|
name: rackup
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -104,30 +103,30 @@ dependencies:
|
|
|
104
103
|
name: irb
|
|
105
104
|
requirement: !ruby/object:Gem::Requirement
|
|
106
105
|
requirements:
|
|
107
|
-
- - "
|
|
106
|
+
- - "~>"
|
|
108
107
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: '
|
|
108
|
+
version: '1.13'
|
|
110
109
|
type: :runtime
|
|
111
110
|
prerelease: false
|
|
112
111
|
version_requirements: !ruby/object:Gem::Requirement
|
|
113
112
|
requirements:
|
|
114
|
-
- - "
|
|
113
|
+
- - "~>"
|
|
115
114
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: '
|
|
115
|
+
version: '1.13'
|
|
117
116
|
- !ruby/object:Gem::Dependency
|
|
118
117
|
name: actionview
|
|
119
118
|
requirement: !ruby/object:Gem::Requirement
|
|
120
119
|
requirements:
|
|
121
120
|
- - '='
|
|
122
121
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: 7.
|
|
122
|
+
version: 7.2.2.2
|
|
124
123
|
type: :development
|
|
125
124
|
prerelease: false
|
|
126
125
|
version_requirements: !ruby/object:Gem::Requirement
|
|
127
126
|
requirements:
|
|
128
127
|
- - '='
|
|
129
128
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: 7.
|
|
129
|
+
version: 7.2.2.2
|
|
131
130
|
description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
|
|
132
131
|
email: david@loudthinking.com
|
|
133
132
|
executables:
|
|
@@ -146,7 +145,6 @@ files:
|
|
|
146
145
|
- lib/rails/api/generator.rb
|
|
147
146
|
- lib/rails/api/task.rb
|
|
148
147
|
- lib/rails/app_loader.rb
|
|
149
|
-
- lib/rails/app_updater.rb
|
|
150
148
|
- lib/rails/application.rb
|
|
151
149
|
- lib/rails/application/bootstrap.rb
|
|
152
150
|
- lib/rails/application/configuration.rb
|
|
@@ -169,8 +167,11 @@ files:
|
|
|
169
167
|
- lib/rails/command/helpers/editor.rb
|
|
170
168
|
- lib/rails/commands.rb
|
|
171
169
|
- lib/rails/commands/about/about_command.rb
|
|
170
|
+
- lib/rails/commands/app/update_command.rb
|
|
172
171
|
- lib/rails/commands/application/application_command.rb
|
|
172
|
+
- lib/rails/commands/boot/boot_command.rb
|
|
173
173
|
- lib/rails/commands/console/console_command.rb
|
|
174
|
+
- lib/rails/commands/console/irb_console.rb
|
|
174
175
|
- lib/rails/commands/credentials/USAGE
|
|
175
176
|
- lib/rails/commands/credentials/credentials_command.rb
|
|
176
177
|
- lib/rails/commands/credentials/credentials_command/diffing.rb
|
|
@@ -178,6 +179,7 @@ files:
|
|
|
178
179
|
- lib/rails/commands/dbconsole/dbconsole_command.rb
|
|
179
180
|
- lib/rails/commands/destroy/destroy_command.rb
|
|
180
181
|
- lib/rails/commands/dev/dev_command.rb
|
|
182
|
+
- lib/rails/commands/devcontainer/devcontainer_command.rb
|
|
181
183
|
- lib/rails/commands/encrypted/USAGE
|
|
182
184
|
- lib/rails/commands/encrypted/encrypted_command.rb
|
|
183
185
|
- lib/rails/commands/gem_help/USAGE
|
|
@@ -196,8 +198,6 @@ files:
|
|
|
196
198
|
- lib/rails/commands/runner/USAGE
|
|
197
199
|
- lib/rails/commands/runner/runner_command.rb
|
|
198
200
|
- lib/rails/commands/secret/secret_command.rb
|
|
199
|
-
- lib/rails/commands/secrets/USAGE
|
|
200
|
-
- lib/rails/commands/secrets/secrets_command.rb
|
|
201
201
|
- lib/rails/commands/server/server_command.rb
|
|
202
202
|
- lib/rails/commands/test/USAGE
|
|
203
203
|
- lib/rails/commands/test/test_command.rb
|
|
@@ -206,6 +206,7 @@ files:
|
|
|
206
206
|
- lib/rails/configuration.rb
|
|
207
207
|
- lib/rails/console/app.rb
|
|
208
208
|
- lib/rails/console/helpers.rb
|
|
209
|
+
- lib/rails/console/methods.rb
|
|
209
210
|
- lib/rails/deprecator.rb
|
|
210
211
|
- lib/rails/dev_caching.rb
|
|
211
212
|
- lib/rails/engine.rb
|
|
@@ -259,22 +260,20 @@ files:
|
|
|
259
260
|
- lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt
|
|
260
261
|
- lib/rails/generators/rails/app/templates/app/views/layouts/mailer.html.erb.tt
|
|
261
262
|
- lib/rails/generators/rails/app/templates/app/views/layouts/mailer.text.erb.tt
|
|
263
|
+
- lib/rails/generators/rails/app/templates/app/views/pwa/manifest.json.erb.tt
|
|
264
|
+
- lib/rails/generators/rails/app/templates/app/views/pwa/service-worker.js
|
|
265
|
+
- lib/rails/generators/rails/app/templates/bin/brakeman.tt
|
|
262
266
|
- lib/rails/generators/rails/app/templates/bin/rails.tt
|
|
263
267
|
- lib/rails/generators/rails/app/templates/bin/rake.tt
|
|
268
|
+
- lib/rails/generators/rails/app/templates/bin/rubocop.tt
|
|
264
269
|
- lib/rails/generators/rails/app/templates/bin/setup.tt
|
|
265
270
|
- lib/rails/generators/rails/app/templates/config.ru.tt
|
|
266
271
|
- lib/rails/generators/rails/app/templates/config/application.rb.tt
|
|
267
272
|
- lib/rails/generators/rails/app/templates/config/boot.rb.tt
|
|
268
273
|
- lib/rails/generators/rails/app/templates/config/cable.yml.tt
|
|
269
|
-
- lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt
|
|
270
|
-
- lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt
|
|
271
|
-
- lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt
|
|
272
|
-
- lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt
|
|
273
274
|
- lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt
|
|
274
|
-
- lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt
|
|
275
275
|
- lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt
|
|
276
276
|
- lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt
|
|
277
|
-
- lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt
|
|
278
277
|
- lib/rails/generators/rails/app/templates/config/databases/trilogy.yml.tt
|
|
279
278
|
- lib/rails/generators/rails/app/templates/config/environment.rb.tt
|
|
280
279
|
- lib/rails/generators/rails/app/templates/config/environments/development.rb.tt
|
|
@@ -285,7 +284,7 @@ files:
|
|
|
285
284
|
- lib/rails/generators/rails/app/templates/config/initializers/cors.rb.tt
|
|
286
285
|
- lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt
|
|
287
286
|
- lib/rails/generators/rails/app/templates/config/initializers/inflections.rb.tt
|
|
288
|
-
- lib/rails/generators/rails/app/templates/config/initializers/
|
|
287
|
+
- lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_2.rb.tt
|
|
289
288
|
- lib/rails/generators/rails/app/templates/config/initializers/permissions_policy.rb.tt
|
|
290
289
|
- lib/rails/generators/rails/app/templates/config/locales/en.yml
|
|
291
290
|
- lib/rails/generators/rails/app/templates/config/puma.rb.tt
|
|
@@ -295,15 +294,18 @@ files:
|
|
|
295
294
|
- lib/rails/generators/rails/app/templates/docker-entrypoint.tt
|
|
296
295
|
- lib/rails/generators/rails/app/templates/dockerignore.tt
|
|
297
296
|
- lib/rails/generators/rails/app/templates/gitattributes.tt
|
|
297
|
+
- lib/rails/generators/rails/app/templates/github/ci.yml.tt
|
|
298
|
+
- lib/rails/generators/rails/app/templates/github/dependabot.yml
|
|
298
299
|
- lib/rails/generators/rails/app/templates/gitignore.tt
|
|
299
300
|
- lib/rails/generators/rails/app/templates/node-version.tt
|
|
300
301
|
- lib/rails/generators/rails/app/templates/public/404.html
|
|
302
|
+
- lib/rails/generators/rails/app/templates/public/406-unsupported-browser.html
|
|
301
303
|
- lib/rails/generators/rails/app/templates/public/422.html
|
|
302
304
|
- lib/rails/generators/rails/app/templates/public/500.html
|
|
303
|
-
- lib/rails/generators/rails/app/templates/public/
|
|
304
|
-
- lib/rails/generators/rails/app/templates/public/
|
|
305
|
-
- lib/rails/generators/rails/app/templates/public/favicon.ico
|
|
305
|
+
- lib/rails/generators/rails/app/templates/public/icon.png
|
|
306
|
+
- lib/rails/generators/rails/app/templates/public/icon.svg
|
|
306
307
|
- lib/rails/generators/rails/app/templates/public/robots.txt
|
|
308
|
+
- lib/rails/generators/rails/app/templates/rubocop.yml.tt
|
|
307
309
|
- lib/rails/generators/rails/app/templates/ruby-version.tt
|
|
308
310
|
- lib/rails/generators/rails/app/templates/test/application_system_test_case.rb.tt
|
|
309
311
|
- lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt
|
|
@@ -318,6 +320,10 @@ files:
|
|
|
318
320
|
- lib/rails/generators/rails/credentials/credentials_generator.rb
|
|
319
321
|
- lib/rails/generators/rails/credentials/templates/credentials.yml.tt
|
|
320
322
|
- lib/rails/generators/rails/db/system/change/change_generator.rb
|
|
323
|
+
- lib/rails/generators/rails/devcontainer/devcontainer_generator.rb
|
|
324
|
+
- lib/rails/generators/rails/devcontainer/templates/devcontainer/Dockerfile.tt
|
|
325
|
+
- lib/rails/generators/rails/devcontainer/templates/devcontainer/compose.yaml.tt
|
|
326
|
+
- lib/rails/generators/rails/devcontainer/templates/devcontainer/devcontainer.json.tt
|
|
321
327
|
- lib/rails/generators/rails/encrypted_file/encrypted_file_generator.rb
|
|
322
328
|
- lib/rails/generators/rails/encryption_key_file/encryption_key_file_generator.rb
|
|
323
329
|
- lib/rails/generators/rails/generator/USAGE
|
|
@@ -348,8 +354,11 @@ files:
|
|
|
348
354
|
- lib/rails/generators/rails/plugin/templates/app/models/%namespaced_name%/application_record.rb.tt
|
|
349
355
|
- lib/rails/generators/rails/plugin/templates/app/views/layouts/%namespaced_name%/application.html.erb.tt
|
|
350
356
|
- lib/rails/generators/rails/plugin/templates/bin/rails.tt
|
|
357
|
+
- lib/rails/generators/rails/plugin/templates/bin/rubocop.tt
|
|
351
358
|
- lib/rails/generators/rails/plugin/templates/bin/test.tt
|
|
352
359
|
- lib/rails/generators/rails/plugin/templates/config/routes.rb.tt
|
|
360
|
+
- lib/rails/generators/rails/plugin/templates/github/ci.yml.tt
|
|
361
|
+
- lib/rails/generators/rails/plugin/templates/github/dependabot.yml
|
|
353
362
|
- lib/rails/generators/rails/plugin/templates/gitignore.tt
|
|
354
363
|
- lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%.rb.tt
|
|
355
364
|
- lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb.tt
|
|
@@ -362,6 +371,7 @@ files:
|
|
|
362
371
|
- lib/rails/generators/rails/plugin/templates/rails/javascripts.js.tt
|
|
363
372
|
- lib/rails/generators/rails/plugin/templates/rails/routes.rb.tt
|
|
364
373
|
- lib/rails/generators/rails/plugin/templates/rails/stylesheets.css
|
|
374
|
+
- lib/rails/generators/rails/plugin/templates/rubocop.yml.tt
|
|
365
375
|
- lib/rails/generators/rails/plugin/templates/test/%namespaced_name%_test.rb.tt
|
|
366
376
|
- lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb.tt
|
|
367
377
|
- lib/rails/generators/rails/plugin/templates/test/integration/navigation_test.rb.tt
|
|
@@ -418,14 +428,13 @@ files:
|
|
|
418
428
|
- lib/rails/mailers_controller.rb
|
|
419
429
|
- lib/rails/paths.rb
|
|
420
430
|
- lib/rails/plugin/test.rb
|
|
431
|
+
- lib/rails/pwa_controller.rb
|
|
421
432
|
- lib/rails/rack.rb
|
|
422
433
|
- lib/rails/rack/logger.rb
|
|
423
434
|
- lib/rails/rackup/server.rb
|
|
424
435
|
- lib/rails/railtie.rb
|
|
425
436
|
- lib/rails/railtie/configurable.rb
|
|
426
437
|
- lib/rails/railtie/configuration.rb
|
|
427
|
-
- lib/rails/ruby_version_check.rb
|
|
428
|
-
- lib/rails/secrets.rb
|
|
429
438
|
- lib/rails/source_annotation_extractor.rb
|
|
430
439
|
- lib/rails/tasks.rb
|
|
431
440
|
- lib/rails/tasks/engine.rake
|
|
@@ -459,12 +468,11 @@ licenses:
|
|
|
459
468
|
- MIT
|
|
460
469
|
metadata:
|
|
461
470
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
|
462
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.
|
|
463
|
-
documentation_uri: https://api.rubyonrails.org/v7.
|
|
471
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.2.2.2/railties/CHANGELOG.md
|
|
472
|
+
documentation_uri: https://api.rubyonrails.org/v7.2.2.2/
|
|
464
473
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
|
465
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.
|
|
474
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.2.2.2/railties
|
|
466
475
|
rubygems_mfa_required: 'true'
|
|
467
|
-
post_install_message:
|
|
468
476
|
rdoc_options:
|
|
469
477
|
- "--exclude"
|
|
470
478
|
- "."
|
|
@@ -474,15 +482,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
474
482
|
requirements:
|
|
475
483
|
- - ">="
|
|
476
484
|
- !ruby/object:Gem::Version
|
|
477
|
-
version:
|
|
485
|
+
version: 3.1.0
|
|
478
486
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
479
487
|
requirements:
|
|
480
488
|
- - ">="
|
|
481
489
|
- !ruby/object:Gem::Version
|
|
482
490
|
version: '0'
|
|
483
491
|
requirements: []
|
|
484
|
-
rubygems_version: 3.
|
|
485
|
-
signing_key:
|
|
492
|
+
rubygems_version: 3.6.9
|
|
486
493
|
specification_version: 4
|
|
487
494
|
summary: Tools for creating, working with, and running Rails applications.
|
|
488
495
|
test_files: []
|
data/lib/rails/app_updater.rb
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "rails/generators"
|
|
4
|
-
require "rails/generators/rails/app/app_generator"
|
|
5
|
-
|
|
6
|
-
module Rails
|
|
7
|
-
class AppUpdater # :nodoc:
|
|
8
|
-
class << self
|
|
9
|
-
def invoke_from_app_generator(method)
|
|
10
|
-
app_generator.send(method)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def app_generator
|
|
14
|
-
@app_generator ||= begin
|
|
15
|
-
gen = Rails::Generators::AppGenerator.new ["rails"], generator_options, destination_root: Rails.root
|
|
16
|
-
gen.send(:valid_const?) unless File.exist?(Rails.root.join("config", "application.rb"))
|
|
17
|
-
gen
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
private
|
|
22
|
-
def generator_options
|
|
23
|
-
options = { api: !!Rails.application.config.api_only, update: true }
|
|
24
|
-
options[:name] = Rails.application.class.name.chomp("::Application").underscore
|
|
25
|
-
options[:skip_active_job] = !defined?(ActiveJob::Railtie)
|
|
26
|
-
options[:skip_active_record] = !defined?(ActiveRecord::Railtie)
|
|
27
|
-
options[:skip_active_storage] = !defined?(ActiveStorage::Engine)
|
|
28
|
-
options[:skip_action_mailer] = !defined?(ActionMailer::Railtie)
|
|
29
|
-
options[:skip_action_mailbox] = !defined?(ActionMailbox::Engine)
|
|
30
|
-
options[:skip_action_text] = !defined?(ActionText::Engine)
|
|
31
|
-
options[:skip_action_cable] = !defined?(ActionCable::Engine)
|
|
32
|
-
options[:skip_test] = !defined?(Rails::TestUnitRailtie)
|
|
33
|
-
options[:skip_system_test] = Rails.application.config.generators.system_tests.nil?
|
|
34
|
-
options[:asset_pipeline] = asset_pipeline
|
|
35
|
-
options[:skip_asset_pipeline] = asset_pipeline.nil?
|
|
36
|
-
options[:skip_bootsnap] = !defined?(Bootsnap)
|
|
37
|
-
options
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def asset_pipeline
|
|
41
|
-
case
|
|
42
|
-
when defined?(Sprockets::Railtie)
|
|
43
|
-
"sprockets"
|
|
44
|
-
when defined?(Propshaft::Railtie)
|
|
45
|
-
"propshaft"
|
|
46
|
-
else
|
|
47
|
-
nil
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
Description:
|
|
2
|
-
** DEPRECATED **
|
|
3
|
-
Rails 5.2 has introduced a new `credentials` API that replaces Rails secrets.
|
|
4
|
-
Please use the Rails `credentials` commands instead.
|
|
5
|
-
Run `bin/rails credentials:help` for more information.
|
|
6
|
-
|
|
7
|
-
The Rails `secrets` commands helps encrypting secrets to slim a production
|
|
8
|
-
environment's `ENV` hash. It's also useful for atomic deploys: no need to
|
|
9
|
-
coordinate key changes to get everything working as the keys are shipped
|
|
10
|
-
with the code.
|
|
11
|
-
|
|
12
|
-
Setup:
|
|
13
|
-
Run `<%= executable(:setup) %>` to opt in and generate the `config/secrets.yml.key`
|
|
14
|
-
and `config/secrets.yml.enc` files.
|
|
15
|
-
|
|
16
|
-
The latter contains all the keys to be encrypted while the former holds the
|
|
17
|
-
encryption key.
|
|
18
|
-
|
|
19
|
-
Don't lose the key! Put it in a password manager your team can access.
|
|
20
|
-
Should you lose it no one, including you, will be able to access any encrypted
|
|
21
|
-
secrets.
|
|
22
|
-
Don't commit the key! Add `config/secrets.yml.key` to your source control's
|
|
23
|
-
ignore file. If you use Git, Rails handles this for you.
|
|
24
|
-
|
|
25
|
-
Rails also looks for the key in `ENV["RAILS_MASTER_KEY"]` if that's easier to
|
|
26
|
-
manage.
|
|
27
|
-
|
|
28
|
-
You could prepend that to your server's start command like this:
|
|
29
|
-
|
|
30
|
-
RAILS_MASTER_KEY="im-the-master-now-hahaha" bin/rails server
|
|
31
|
-
|
|
32
|
-
The `config/secrets.yml.enc` has much the same format as `config/secrets.yml`:
|
|
33
|
-
|
|
34
|
-
production:
|
|
35
|
-
secret_key_base: so-secret-very-hidden-wow
|
|
36
|
-
payment_processing_gateway_key: much-safe-very-gaedwey-wow
|
|
37
|
-
|
|
38
|
-
But that's where the similarities between `secrets.yml` and `secrets.yml.enc`
|
|
39
|
-
end, e.g. no keys from `secrets.yml` will be moved to `secrets.yml.enc` and
|
|
40
|
-
be encrypted.
|
|
41
|
-
|
|
42
|
-
A `shared:` top level key is also supported such that any keys there is merged
|
|
43
|
-
into the other environments.
|
|
44
|
-
|
|
45
|
-
Additionally, Rails won't read encrypted secrets out of the box even if you have
|
|
46
|
-
the key. Add this:
|
|
47
|
-
|
|
48
|
-
config.read_encrypted_secrets = true
|
|
49
|
-
|
|
50
|
-
to the environment you'd like to read encrypted secrets. `<%= executable(:setup) %>`
|
|
51
|
-
inserts this into the production environment by default.
|
|
52
|
-
|
|
53
|
-
Editing Secrets:
|
|
54
|
-
After `<%= executable(:setup) %>`, run `<%= executable(:edit) %>`.
|
|
55
|
-
|
|
56
|
-
That command opens a temporary file in `$VISUAL` or `$EDITOR` with the decrypted
|
|
57
|
-
contents of `config/secrets.yml.enc` to edit the encrypted secrets.
|
|
58
|
-
|
|
59
|
-
When the temporary file is next saved the contents are encrypted and written to
|
|
60
|
-
`config/secrets.yml.enc` while the file itself is destroyed to prevent secrets
|
|
61
|
-
from leaking.
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "active_support"
|
|
4
|
-
require "active_support/core_ext/string/filters"
|
|
5
|
-
require "rails/secrets"
|
|
6
|
-
require "rails/command/helpers/editor"
|
|
7
|
-
|
|
8
|
-
module Rails
|
|
9
|
-
module Command
|
|
10
|
-
class SecretsCommand < Rails::Command::Base # :nodoc:
|
|
11
|
-
include Helpers::Editor
|
|
12
|
-
|
|
13
|
-
desc "edit", "**deprecated** Open the secrets in `$VISUAL` or `$EDITOR` for editing"
|
|
14
|
-
def edit
|
|
15
|
-
Rails.deprecator.warn(<<~MSG.squish)
|
|
16
|
-
`bin/rails secrets:edit` is deprecated in favor of credentials and will be removed in Rails 7.2.
|
|
17
|
-
Run `bin/rails credentials:help` for more information.
|
|
18
|
-
MSG
|
|
19
|
-
|
|
20
|
-
boot_application!
|
|
21
|
-
|
|
22
|
-
using_system_editor do
|
|
23
|
-
Rails::Secrets.read_for_editing { |tmp_path| system_editor(tmp_path) }
|
|
24
|
-
say "File encrypted and saved."
|
|
25
|
-
end
|
|
26
|
-
rescue Rails::Secrets::MissingKeyError => error
|
|
27
|
-
say error.message
|
|
28
|
-
rescue Errno::ENOENT => error
|
|
29
|
-
if error.message.include?("secrets.yml.enc")
|
|
30
|
-
exit 1
|
|
31
|
-
else
|
|
32
|
-
raise
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
desc "show", "**deprecated** Show the decrypted secrets"
|
|
37
|
-
def show
|
|
38
|
-
Rails.deprecator.warn(<<~MSG.squish)
|
|
39
|
-
`bin/rails secrets:show` is deprecated in favor of credentials and will be removed in Rails 7.2.
|
|
40
|
-
Run `bin/rails credentials:help` for more information.
|
|
41
|
-
MSG
|
|
42
|
-
|
|
43
|
-
say Rails::Secrets.read
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|