railties 7.2.1 → 8.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +111 -287
  3. data/lib/minitest/rails_plugin.rb +1 -1
  4. data/lib/rails/application/configuration.rb +15 -2
  5. data/lib/rails/application/default_middleware_stack.rb +4 -0
  6. data/lib/rails/application/finisher.rb +2 -2
  7. data/lib/rails/application/routes_reloader.rb +11 -1
  8. data/lib/rails/application.rb +5 -0
  9. data/lib/rails/code_statistics.rb +128 -86
  10. data/lib/rails/code_statistics_calculator.rb +78 -76
  11. data/lib/rails/command/helpers/editor.rb +1 -1
  12. data/lib/rails/commands/app/update_command.rb +1 -9
  13. data/lib/rails/commands/credentials/USAGE +4 -4
  14. data/lib/rails/commands/credentials/credentials_command.rb +5 -1
  15. data/lib/rails/commands/dev/dev_command.rb +1 -1
  16. data/lib/rails/commands/devcontainer/devcontainer_command.rb +1 -1
  17. data/lib/rails/commands/stats/stats_command.rb +19 -0
  18. data/lib/rails/dev_caching.rb +2 -2
  19. data/lib/rails/engine/configuration.rb +3 -1
  20. data/lib/rails/engine/lazy_route_set.rb +109 -0
  21. data/lib/rails/engine.rb +10 -5
  22. data/lib/rails/gem_version.rb +4 -4
  23. data/lib/rails/generators/app_base.rb +46 -24
  24. data/lib/rails/generators/database.rb +101 -67
  25. data/lib/rails/generators/erb/authentication/authentication_generator.rb +15 -0
  26. data/lib/rails/generators/erb/authentication/templates/views/passwords/edit.html.erb +9 -0
  27. data/lib/rails/generators/erb/authentication/templates/views/passwords/new.html.erb +8 -0
  28. data/lib/rails/generators/erb/authentication/templates/views/sessions/new.html.erb +11 -0
  29. data/lib/rails/generators/generated_attribute.rb +16 -11
  30. data/lib/rails/generators/rails/app/app_generator.rb +19 -32
  31. data/lib/rails/generators/rails/app/templates/Dockerfile.tt +12 -3
  32. data/lib/rails/generators/rails/app/templates/Gemfile.tt +23 -8
  33. data/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css.tt +6 -11
  34. data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +10 -3
  35. data/lib/rails/generators/rails/app/templates/bin/dev.tt +1 -0
  36. data/lib/rails/generators/rails/app/templates/bin/setup.tt +5 -7
  37. data/lib/rails/generators/rails/app/templates/bin/thrust.tt +4 -0
  38. data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +23 -0
  39. data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +23 -0
  40. data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +40 -0
  41. data/lib/rails/generators/rails/app/templates/config/databases/trilogy.yml.tt +23 -0
  42. data/lib/rails/generators/rails/app/templates/config/deploy.yml.tt +124 -0
  43. data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +12 -23
  44. data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +34 -51
  45. data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +5 -19
  46. data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +0 -7
  47. data/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt +1 -1
  48. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_8_0.rb.tt +25 -0
  49. data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +11 -2
  50. data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +3 -3
  51. data/lib/rails/generators/rails/app/templates/docker-entrypoint.tt +4 -3
  52. data/lib/rails/generators/rails/app/templates/dockerignore.tt +1 -2
  53. data/lib/rails/generators/rails/app/templates/github/ci.yml.tt +1 -1
  54. data/lib/rails/generators/rails/app/templates/gitignore.tt +1 -2
  55. data/lib/rails/generators/rails/app/templates/kamal-secrets.tt +17 -0
  56. data/lib/rails/generators/rails/app/templates/public/400.html +114 -0
  57. data/lib/rails/generators/rails/app/templates/public/404.html +113 -66
  58. data/lib/rails/generators/rails/app/templates/public/406-unsupported-browser.html +113 -65
  59. data/lib/rails/generators/rails/app/templates/public/422.html +113 -66
  60. data/lib/rails/generators/rails/app/templates/public/500.html +113 -65
  61. data/lib/rails/generators/rails/app/templates/public/icon.png +0 -0
  62. data/lib/rails/generators/rails/app/templates/public/icon.svg +2 -2
  63. data/lib/rails/generators/rails/authentication/USAGE +6 -0
  64. data/lib/rails/generators/rails/authentication/authentication_generator.rb +54 -0
  65. data/lib/rails/generators/rails/authentication/templates/controllers/concerns/authentication.rb +55 -0
  66. data/lib/rails/generators/rails/authentication/templates/controllers/passwords_controller.rb +33 -0
  67. data/lib/rails/generators/rails/authentication/templates/controllers/sessions_controller.rb +21 -0
  68. data/lib/rails/generators/rails/authentication/templates/mailers/passwords_mailer.rb +6 -0
  69. data/lib/rails/generators/rails/authentication/templates/models/current.rb +4 -0
  70. data/lib/rails/generators/rails/authentication/templates/models/session.rb +3 -0
  71. data/lib/rails/generators/rails/authentication/templates/models/user.rb +6 -0
  72. data/lib/rails/generators/rails/authentication/templates/test/mailers/previews/passwords_mailer_preview.rb +7 -0
  73. data/lib/rails/generators/rails/authentication/templates/views/passwords_mailer/reset.html.erb +4 -0
  74. data/lib/rails/generators/rails/authentication/templates/views/passwords_mailer/reset.text.erb +2 -0
  75. data/lib/rails/generators/rails/credentials/templates/credentials.yml.tt +4 -0
  76. data/lib/rails/generators/rails/db/system/change/change_generator.rb +1 -1
  77. data/lib/rails/generators/rails/devcontainer/devcontainer_generator.rb +5 -3
  78. data/lib/rails/generators/rails/devcontainer/templates/devcontainer/devcontainer.json.tt +1 -1
  79. data/lib/rails/generators/rails/plugin/plugin_generator.rb +11 -11
  80. data/lib/rails/generators/rails/plugin/templates/github/ci.yml.tt +1 -1
  81. data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +2 -2
  82. data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +2 -2
  83. data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +3 -3
  84. data/lib/rails/generators/rails/script/USAGE +18 -0
  85. data/lib/rails/generators/rails/script/script_generator.rb +18 -0
  86. data/lib/rails/generators/rails/script/templates/script.rb.tt +3 -0
  87. data/lib/rails/generators.rb +7 -2
  88. data/lib/rails/info_controller.rb +10 -2
  89. data/lib/rails/rack/silence_request.rb +33 -0
  90. data/lib/rails/rack.rb +1 -0
  91. data/lib/rails/railtie.rb +13 -13
  92. data/lib/rails/source_annotation_extractor.rb +31 -14
  93. data/lib/rails/tasks/statistics.rake +13 -28
  94. data/lib/rails/templates/rails/info/notes.html.erb +65 -0
  95. metadata +45 -25
  96. data/lib/rails/generators/rails/app/templates/app/assets/config/manifest.js.tt +0 -2
  97. data/lib/rails/generators/rails/app/templates/app/channels/application_cable/channel.rb.tt +0 -4
  98. data/lib/rails/generators/rails/app/templates/app/channels/application_cable/connection.rb.tt +0 -4
  99. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_2.rb.tt +0 -70
  100. data/lib/rails/generators/rails/app/templates/config/initializers/permissions_policy.rb.tt +0 -13
  101. data/lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt +0 -13
  102. data/lib/rails/generators/rails/plugin/templates/rails/dummy_manifest.js.tt +0 -10
  103. data/lib/rails/generators/rails/plugin/templates/rails/engine_manifest.js.tt +0 -6
  104. data/lib/rails/generators/rails/plugin/templates/rails/javascripts.js.tt +0 -17
@@ -23,7 +23,6 @@ module Rails
23
23
  autoload :NamedBase, "rails/generators/named_base"
24
24
  autoload :ResourceHelpers, "rails/generators/resource_helpers"
25
25
  autoload :TestCase, "rails/generators/test_case"
26
- autoload :Devcontainer, "rails/generators/devcontainer"
27
26
 
28
27
  mattr_accessor :namespace
29
28
 
@@ -61,6 +60,10 @@ module Rails
61
60
  }
62
61
  }
63
62
 
63
+ # We need to store the RAILS_DEV_PATH in a constant, otherwise the path
64
+ # can change when we FileUtils.cd.
65
+ RAILS_DEV_PATH = File.expand_path("../../..", __dir__) # :nodoc:
66
+
64
67
  class << self
65
68
  def configure!(config) # :nodoc:
66
69
  api_only! if config.api_only
@@ -152,7 +155,8 @@ module Rails
152
155
  "#{template}:scaffold",
153
156
  "#{template}:mailer",
154
157
  "action_text:install",
155
- "action_mailbox:install"
158
+ "action_mailbox:install",
159
+ "devcontainer"
156
160
  ]
157
161
  end
158
162
  end
@@ -268,6 +272,7 @@ module Rails
268
272
  #{error.detailed_message}
269
273
  Run `bin/rails generate --help` for more options.
270
274
  MSG
275
+ exit 1
271
276
  end
272
277
  end
273
278
 
@@ -20,7 +20,7 @@ class Rails::InfoController < Rails::ApplicationController # :nodoc:
20
20
 
21
21
  def routes
22
22
  if query = params[:query]
23
- query = URI::DEFAULT_PARSER.escape query
23
+ query = URI::RFC2396_PARSER.escape query
24
24
 
25
25
  render json: {
26
26
  exact: matching_routes(query: query, exact_match: true),
@@ -32,6 +32,14 @@ class Rails::InfoController < Rails::ApplicationController # :nodoc:
32
32
  end
33
33
  end
34
34
 
35
+ def notes
36
+ @annotations = Rails::SourceAnnotationExtractor.new(
37
+ Rails::SourceAnnotationExtractor::Annotation.tags.join("|")
38
+ ).find(
39
+ Rails::SourceAnnotationExtractor::Annotation.directories
40
+ )
41
+ end
42
+
35
43
  private
36
44
  def matching_routes(query:, exact_match:)
37
45
  return [] if query.blank?
@@ -53,7 +61,7 @@ class Rails::InfoController < Rails::ApplicationController # :nodoc:
53
61
  match ||= (query === route_wrapper.verb)
54
62
 
55
63
  unless match
56
- controller_action = URI::DEFAULT_PARSER.escape(route_wrapper.reqs)
64
+ controller_action = URI::RFC2396_PARSER.escape(route_wrapper.reqs)
57
65
  match = exact_match ? (query === controller_action) : controller_action.include?(query)
58
66
  end
59
67
 
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ # :markup: markdown
4
+
5
+ require "active_support/logger_silence"
6
+
7
+ module Rails
8
+ module Rack
9
+ # Allows you to silence requests made to a specific path.
10
+ # This is useful for preventing recurring requests like health checks from clogging the logging.
11
+ # This middleware is used to do just that against the path /up in production by default.
12
+ #
13
+ # Example:
14
+ #
15
+ # config.middleware.insert_before \
16
+ # Rails::Rack::Logger, Rails::Rack::SilenceRequest, path: "/up"
17
+ #
18
+ # This middleware can also be configured using `config.silence_healthcheck_path = "/up"` in Rails.
19
+ class SilenceRequest
20
+ def initialize(app, path:)
21
+ @app, @path = app, path
22
+ end
23
+
24
+ def call(env)
25
+ if env["PATH_INFO"] == @path
26
+ Rails.logger.silence { @app.call(env) }
27
+ else
28
+ @app.call(env)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
data/lib/rails/rack.rb CHANGED
@@ -3,5 +3,6 @@
3
3
  module Rails
4
4
  module Rack
5
5
  autoload :Logger, "rails/rack/logger"
6
+ autoload :SilenceRequest, "rails/rack/silence_request"
6
7
  end
7
8
  end
data/lib/rails/railtie.rb CHANGED
@@ -50,8 +50,8 @@ module Rails
50
50
  # To add an initialization step to the \Rails boot process from your railtie, just
51
51
  # define the initialization code with the +initializer+ macro:
52
52
  #
53
- # class MyRailtie < Rails::Railtie
54
- # initializer "my_railtie.configure_rails_initialization" do
53
+ # class MyGem::Railtie < Rails::Railtie
54
+ # initializer "my_gem.configure_rails_initialization" do
55
55
  # # some initialization behavior
56
56
  # end
57
57
  # end
@@ -59,9 +59,9 @@ module Rails
59
59
  # If specified, the block can also receive the application object, in case you
60
60
  # need to access some application-specific configuration, like middleware:
61
61
  #
62
- # class MyRailtie < Rails::Railtie
63
- # initializer "my_railtie.configure_rails_initialization" do |app|
64
- # app.middleware.use MyRailtie::Middleware
62
+ # class MyGem::Railtie < Rails::Railtie
63
+ # initializer "my_gem.configure_rails_initialization" do |app|
64
+ # app.middleware.use MyGem::Middleware
65
65
  # end
66
66
  # end
67
67
  #
@@ -74,14 +74,14 @@ module Rails
74
74
  # Railties can access a config object which contains configuration shared by all
75
75
  # railties and the application:
76
76
  #
77
- # class MyRailtie < Rails::Railtie
77
+ # class MyGem::Railtie < Rails::Railtie
78
78
  # # Customize the ORM
79
- # config.app_generators.orm :my_railtie_orm
79
+ # config.app_generators.orm :my_gem_orm
80
80
  #
81
81
  # # Add a to_prepare block which is executed once in production
82
82
  # # and before each request in development.
83
83
  # config.to_prepare do
84
- # MyRailtie.setup!
84
+ # MyGem.setup!
85
85
  # end
86
86
  # end
87
87
  #
@@ -90,9 +90,9 @@ module Rails
90
90
  # If your railtie has Rake tasks, you can tell \Rails to load them through the method
91
91
  # +rake_tasks+:
92
92
  #
93
- # class MyRailtie < Rails::Railtie
93
+ # class MyGem::Railtie < Rails::Railtie
94
94
  # rake_tasks do
95
- # load "path/to/my_railtie.tasks"
95
+ # load "path/to/my_gem.tasks"
96
96
  # end
97
97
  # end
98
98
  #
@@ -100,9 +100,9 @@ module Rails
100
100
  # your generators at a different location, you can specify in your railtie a block which
101
101
  # will load them during normal generators lookup:
102
102
  #
103
- # class MyRailtie < Rails::Railtie
103
+ # class MyGem::Railtie < Rails::Railtie
104
104
  # generators do
105
- # require "path/to/my_railtie_generator"
105
+ # require "path/to/my_gem_generator"
106
106
  # end
107
107
  # end
108
108
  #
@@ -120,7 +120,7 @@ module Rails
120
120
  # this less confusing for everyone.
121
121
  # It can be used like this:
122
122
  #
123
- # class MyRailtie < Rails::Railtie
123
+ # class MyGem::Railtie < Rails::Railtie
124
124
  # server do
125
125
  # WebpackServer.start
126
126
  # end
@@ -1,6 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "ripper"
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 for the ParserExtractor using ripper.
8
+ require "ripper"
9
+ end
4
10
 
5
11
  module Rails
6
12
  # Implements the logic behind +Rails::Command::NotesCommand+. See <tt>rails notes --help</tt> for usage information.
@@ -16,24 +22,35 @@ module Rails
16
22
  # Wraps a regular expression that will be tested against each of the source
17
23
  # file's comments.
18
24
  class ParserExtractor < Struct.new(:pattern)
19
- class Parser < Ripper
20
- attr_reader :comments, :pattern
25
+ if defined?(Prism)
26
+ def annotations(file)
27
+ result = Prism.parse_file(file)
28
+ return [] unless result.success?
21
29
 
22
- def initialize(source, pattern:)
23
- super(source)
24
- @pattern = pattern
25
- @comments = []
30
+ result.comments.filter_map do |comment|
31
+ Annotation.new(comment.location.start_line, $1, $2) if comment.location.slice =~ pattern
32
+ end
26
33
  end
34
+ else
35
+ class Parser < Ripper
36
+ attr_reader :comments, :pattern
37
+
38
+ def initialize(source, pattern:)
39
+ super(source)
40
+ @pattern = pattern
41
+ @comments = []
42
+ end
27
43
 
28
- def on_comment(value)
29
- @comments << Annotation.new(lineno, $1, $2) if value =~ pattern
44
+ def on_comment(value)
45
+ @comments << Annotation.new(lineno, $1, $2) if value =~ pattern
46
+ end
30
47
  end
31
- end
32
48
 
33
- def annotations(file)
34
- contents = File.read(file, encoding: Encoding::BINARY)
35
- parser = Parser.new(contents, pattern: pattern).tap(&:parse)
36
- parser.error? ? [] : parser.comments
49
+ def annotations(file)
50
+ contents = File.read(file, encoding: Encoding::BINARY)
51
+ parser = Parser.new(contents, pattern: pattern).tap(&:parse)
52
+ parser.error? ? [] : parser.comments
53
+ end
37
54
  end
38
55
  end
39
56
 
@@ -1,32 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # While global constants are bad, many 3rd party tools depend on this one (e.g
4
- # rspec-rails & cucumber-rails). So a deprecation warning is needed if we want
5
- # to remove it.
6
- STATS_DIRECTORIES ||= [
7
- %w(Controllers app/controllers),
8
- %w(Helpers app/helpers),
9
- %w(Jobs app/jobs),
10
- %w(Models app/models),
11
- %w(Mailers app/mailers),
12
- %w(Mailboxes app/mailboxes),
13
- %w(Channels app/channels),
14
- %w(Views app/views),
15
- %w(JavaScripts app/assets/javascripts),
16
- %w(Stylesheets app/assets/stylesheets),
17
- %w(JavaScript app/javascript),
18
- %w(Libraries lib/),
19
- %w(APIs app/apis),
20
- %w(Controller\ tests test/controllers),
21
- %w(Helper\ tests test/helpers),
22
- %w(Job\ tests test/jobs),
23
- %w(Model\ tests test/models),
24
- %w(Mailer\ tests test/mailers),
25
- %w(Mailbox\ tests test/mailboxes),
26
- %w(Channel\ tests test/channels),
27
- %w(Integration\ tests test/integration),
28
- %w(System\ tests test/system),
29
- ]
3
+ require "rails/code_statistics"
4
+ STATS_DIRECTORIES = ActiveSupport::Deprecation::DeprecatedObjectProxy.new(
5
+ Rails::CodeStatistics::DIRECTORIES,
6
+ "`STATS_DIRECTORIES` is deprecated and will be removed in Rails 8.1! Use `Rails::CodeStatistics.register_directory('My Directory', 'path/to/dir)` instead.",
7
+ Rails.deprecator
8
+ )
30
9
 
31
10
  desc "Report code statistics (KLOCs, etc) from the application or engine"
32
11
  task :stats do
@@ -34,5 +13,11 @@ task :stats do
34
13
  stat_directories = STATS_DIRECTORIES.collect do |name, dir|
35
14
  [ name, "#{File.dirname(Rake.application.rakefile_location)}/#{dir}" ]
36
15
  end.select { |name, dir| File.directory?(dir) }
37
- CodeStatistics.new(*stat_directories).to_s
16
+
17
+ $stderr.puts Rails.deprecator.warn(<<~MSG, caller_locations(0..1))
18
+ `bin/rake stats` has been deprecated and will be removed in Rails 8.1.
19
+ Please use `bin/rails stats` as Rails command instead.\n
20
+ MSG
21
+
22
+ Rails::CodeStatistics.new(*stat_directories).to_s
38
23
  end
@@ -0,0 +1,65 @@
1
+ <style>
2
+ h2, p {
3
+ padding-left: 30px;
4
+ }
5
+ table {
6
+ margin: 0;
7
+ border-collapse: collapse;
8
+ word-wrap:break-word;
9
+ table-layout: fixed;
10
+ width:100%;
11
+ }
12
+ table thead tr {
13
+ border-bottom: 2px solid #ddd;
14
+ }
15
+ table th {
16
+ padding-left: 30px;
17
+ text-align: left;
18
+ }
19
+ table thead th.tag, table thead th.line-no {
20
+ width: 10%;
21
+ }
22
+ table tbody tr {
23
+ border-bottom: 1px solid #ddd;
24
+ }
25
+ table tbody tr:nth-child(odd) {
26
+ background: #f2f2f2;
27
+ }
28
+ table td {
29
+ padding: 4px 30px;
30
+ }
31
+ @media (prefers-color-scheme: dark) {
32
+ table tbody tr:nth-child(odd) {
33
+ background: #282828;
34
+ }
35
+ }
36
+ </style>
37
+
38
+ <h2>
39
+ Notes
40
+ </h2>
41
+
42
+ <table id="route_table" class="table">
43
+ <thead>
44
+ <th>File Name</th>
45
+ <th class="line-no">Line No.</th>
46
+ <th class="tag">Tag</th>
47
+ <th>Description</th>
48
+ </thead>
49
+ <tbody>
50
+ <% @annotations.each do |file, annotations| %>
51
+ <% annotations.each.with_index do |annotation, index| %>
52
+ <tr>
53
+ <% if index == 0 %>
54
+ <th rowspan="<%= annotations.size %>">
55
+ <%= file %>
56
+ </th>
57
+ <% end %>
58
+ <td class="line-no"><%= annotation.line %></td>
59
+ <td class="tag"><%= annotation.tag %></td>
60
+ <td><%= annotation.text %></td>
61
+ </tr>
62
+ <% end %>
63
+ <% end %>
64
+ </tbody>
65
+ </table>
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.2.1
4
+ version: 8.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-22 00:00:00.000000000 Z
11
+ date: 2024-09-26 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.2.1
19
+ version: 8.0.0.beta1
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.2.1
26
+ version: 8.0.0.beta1
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.2.1
33
+ version: 8.0.0.beta1
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.2.1
40
+ version: 8.0.0.beta1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rackup
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -120,14 +120,14 @@ dependencies:
120
120
  requirements:
121
121
  - - '='
122
122
  - !ruby/object:Gem::Version
123
- version: 7.2.1
123
+ version: 8.0.0.beta1
124
124
  type: :development
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - '='
129
129
  - !ruby/object:Gem::Version
130
- version: 7.2.1
130
+ version: 8.0.0.beta1
131
131
  description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
132
132
  email: david@loudthinking.com
133
133
  executables:
@@ -200,6 +200,7 @@ files:
200
200
  - lib/rails/commands/runner/runner_command.rb
201
201
  - lib/rails/commands/secret/secret_command.rb
202
202
  - lib/rails/commands/server/server_command.rb
203
+ - lib/rails/commands/stats/stats_command.rb
203
204
  - lib/rails/commands/test/USAGE
204
205
  - lib/rails/commands/test/test_command.rb
205
206
  - lib/rails/commands/unused_routes/unused_routes_command.rb
@@ -213,6 +214,7 @@ files:
213
214
  - lib/rails/engine.rb
214
215
  - lib/rails/engine/commands.rb
215
216
  - lib/rails/engine/configuration.rb
217
+ - lib/rails/engine/lazy_route_set.rb
216
218
  - lib/rails/engine/railties.rb
217
219
  - lib/rails/engine/updater.rb
218
220
  - lib/rails/gem_version.rb
@@ -225,6 +227,10 @@ files:
225
227
  - lib/rails/generators/base.rb
226
228
  - lib/rails/generators/database.rb
227
229
  - lib/rails/generators/erb.rb
230
+ - lib/rails/generators/erb/authentication/authentication_generator.rb
231
+ - lib/rails/generators/erb/authentication/templates/views/passwords/edit.html.erb
232
+ - lib/rails/generators/erb/authentication/templates/views/passwords/new.html.erb
233
+ - lib/rails/generators/erb/authentication/templates/views/sessions/new.html.erb
228
234
  - lib/rails/generators/erb/controller/controller_generator.rb
229
235
  - lib/rails/generators/erb/controller/templates/view.html.erb.tt
230
236
  - lib/rails/generators/erb/mailer/mailer_generator.rb
@@ -249,10 +255,7 @@ files:
249
255
  - lib/rails/generators/rails/app/templates/Gemfile.tt
250
256
  - lib/rails/generators/rails/app/templates/README.md.tt
251
257
  - lib/rails/generators/rails/app/templates/Rakefile.tt
252
- - lib/rails/generators/rails/app/templates/app/assets/config/manifest.js.tt
253
258
  - lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css.tt
254
- - lib/rails/generators/rails/app/templates/app/channels/application_cable/channel.rb.tt
255
- - lib/rails/generators/rails/app/templates/app/channels/application_cable/connection.rb.tt
256
259
  - lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt
257
260
  - lib/rails/generators/rails/app/templates/app/helpers/application_helper.rb.tt
258
261
  - lib/rails/generators/rails/app/templates/app/jobs/application_job.rb.tt
@@ -264,10 +267,12 @@ files:
264
267
  - lib/rails/generators/rails/app/templates/app/views/pwa/manifest.json.erb.tt
265
268
  - lib/rails/generators/rails/app/templates/app/views/pwa/service-worker.js
266
269
  - lib/rails/generators/rails/app/templates/bin/brakeman.tt
270
+ - lib/rails/generators/rails/app/templates/bin/dev.tt
267
271
  - lib/rails/generators/rails/app/templates/bin/rails.tt
268
272
  - lib/rails/generators/rails/app/templates/bin/rake.tt
269
273
  - lib/rails/generators/rails/app/templates/bin/rubocop.tt
270
274
  - lib/rails/generators/rails/app/templates/bin/setup.tt
275
+ - lib/rails/generators/rails/app/templates/bin/thrust.tt
271
276
  - lib/rails/generators/rails/app/templates/config.ru.tt
272
277
  - lib/rails/generators/rails/app/templates/config/application.rb.tt
273
278
  - lib/rails/generators/rails/app/templates/config/boot.rb.tt
@@ -276,6 +281,7 @@ files:
276
281
  - lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt
277
282
  - lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt
278
283
  - lib/rails/generators/rails/app/templates/config/databases/trilogy.yml.tt
284
+ - lib/rails/generators/rails/app/templates/config/deploy.yml.tt
279
285
  - lib/rails/generators/rails/app/templates/config/environment.rb.tt
280
286
  - lib/rails/generators/rails/app/templates/config/environments/development.rb.tt
281
287
  - lib/rails/generators/rails/app/templates/config/environments/production.rb.tt
@@ -285,8 +291,7 @@ files:
285
291
  - lib/rails/generators/rails/app/templates/config/initializers/cors.rb.tt
286
292
  - lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt
287
293
  - lib/rails/generators/rails/app/templates/config/initializers/inflections.rb.tt
288
- - lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_2.rb.tt
289
- - lib/rails/generators/rails/app/templates/config/initializers/permissions_policy.rb.tt
294
+ - lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_8_0.rb.tt
290
295
  - lib/rails/generators/rails/app/templates/config/locales/en.yml
291
296
  - lib/rails/generators/rails/app/templates/config/puma.rb.tt
292
297
  - lib/rails/generators/rails/app/templates/config/routes.rb.tt
@@ -298,7 +303,9 @@ files:
298
303
  - lib/rails/generators/rails/app/templates/github/ci.yml.tt
299
304
  - lib/rails/generators/rails/app/templates/github/dependabot.yml
300
305
  - lib/rails/generators/rails/app/templates/gitignore.tt
306
+ - lib/rails/generators/rails/app/templates/kamal-secrets.tt
301
307
  - lib/rails/generators/rails/app/templates/node-version.tt
308
+ - lib/rails/generators/rails/app/templates/public/400.html
302
309
  - lib/rails/generators/rails/app/templates/public/404.html
303
310
  - lib/rails/generators/rails/app/templates/public/406-unsupported-browser.html
304
311
  - lib/rails/generators/rails/app/templates/public/422.html
@@ -309,9 +316,20 @@ files:
309
316
  - lib/rails/generators/rails/app/templates/rubocop.yml.tt
310
317
  - lib/rails/generators/rails/app/templates/ruby-version.tt
311
318
  - lib/rails/generators/rails/app/templates/test/application_system_test_case.rb.tt
312
- - lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt
313
319
  - lib/rails/generators/rails/app/templates/test/test_helper.rb.tt
314
320
  - lib/rails/generators/rails/application_record/application_record_generator.rb
321
+ - lib/rails/generators/rails/authentication/USAGE
322
+ - lib/rails/generators/rails/authentication/authentication_generator.rb
323
+ - lib/rails/generators/rails/authentication/templates/controllers/concerns/authentication.rb
324
+ - lib/rails/generators/rails/authentication/templates/controllers/passwords_controller.rb
325
+ - lib/rails/generators/rails/authentication/templates/controllers/sessions_controller.rb
326
+ - lib/rails/generators/rails/authentication/templates/mailers/passwords_mailer.rb
327
+ - lib/rails/generators/rails/authentication/templates/models/current.rb
328
+ - lib/rails/generators/rails/authentication/templates/models/session.rb
329
+ - lib/rails/generators/rails/authentication/templates/models/user.rb
330
+ - lib/rails/generators/rails/authentication/templates/test/mailers/previews/passwords_mailer_preview.rb
331
+ - lib/rails/generators/rails/authentication/templates/views/passwords_mailer/reset.html.erb
332
+ - lib/rails/generators/rails/authentication/templates/views/passwords_mailer/reset.text.erb
315
333
  - lib/rails/generators/rails/benchmark/USAGE
316
334
  - lib/rails/generators/rails/benchmark/benchmark_generator.rb
317
335
  - lib/rails/generators/rails/benchmark/templates/benchmark.rb.tt
@@ -367,9 +385,6 @@ files:
367
385
  - lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb.tt
368
386
  - lib/rails/generators/rails/plugin/templates/lib/tasks/%namespaced_name%_tasks.rake.tt
369
387
  - lib/rails/generators/rails/plugin/templates/rails/boot.rb.tt
370
- - lib/rails/generators/rails/plugin/templates/rails/dummy_manifest.js.tt
371
- - lib/rails/generators/rails/plugin/templates/rails/engine_manifest.js.tt
372
- - lib/rails/generators/rails/plugin/templates/rails/javascripts.js.tt
373
388
  - lib/rails/generators/rails/plugin/templates/rails/routes.rb.tt
374
389
  - lib/rails/generators/rails/plugin/templates/rails/stylesheets.css
375
390
  - lib/rails/generators/rails/plugin/templates/rubocop.yml.tt
@@ -386,6 +401,9 @@ files:
386
401
  - lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb
387
402
  - lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt
388
403
  - lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt
404
+ - lib/rails/generators/rails/script/USAGE
405
+ - lib/rails/generators/rails/script/script_generator.rb
406
+ - lib/rails/generators/rails/script/templates/script.rb.tt
389
407
  - lib/rails/generators/rails/system_test/USAGE
390
408
  - lib/rails/generators/rails/system_test/system_test_generator.rb
391
409
  - lib/rails/generators/rails/task/USAGE
@@ -432,6 +450,7 @@ files:
432
450
  - lib/rails/pwa_controller.rb
433
451
  - lib/rails/rack.rb
434
452
  - lib/rails/rack/logger.rb
453
+ - lib/rails/rack/silence_request.rb
435
454
  - lib/rails/rackup/server.rb
436
455
  - lib/rails/railtie.rb
437
456
  - lib/rails/railtie/configurable.rb
@@ -447,6 +466,7 @@ files:
447
466
  - lib/rails/tasks/yarn.rake
448
467
  - lib/rails/tasks/zeitwerk.rake
449
468
  - lib/rails/templates/layouts/application.html.erb
469
+ - lib/rails/templates/rails/info/notes.html.erb
450
470
  - lib/rails/templates/rails/info/properties.html.erb
451
471
  - lib/rails/templates/rails/info/routes.html.erb
452
472
  - lib/rails/templates/rails/mailers/email.html.erb
@@ -469,12 +489,12 @@ licenses:
469
489
  - MIT
470
490
  metadata:
471
491
  bug_tracker_uri: https://github.com/rails/rails/issues
472
- changelog_uri: https://github.com/rails/rails/blob/v7.2.1/railties/CHANGELOG.md
473
- documentation_uri: https://api.rubyonrails.org/v7.2.1/
492
+ changelog_uri: https://github.com/rails/rails/blob/v8.0.0.beta1/railties/CHANGELOG.md
493
+ documentation_uri: https://api.rubyonrails.org/v8.0.0.beta1/
474
494
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
475
- source_code_uri: https://github.com/rails/rails/tree/v7.2.1/railties
495
+ source_code_uri: https://github.com/rails/rails/tree/v8.0.0.beta1/railties
476
496
  rubygems_mfa_required: 'true'
477
- post_install_message:
497
+ post_install_message:
478
498
  rdoc_options:
479
499
  - "--exclude"
480
500
  - "."
@@ -484,15 +504,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
484
504
  requirements:
485
505
  - - ">="
486
506
  - !ruby/object:Gem::Version
487
- version: 3.1.0
507
+ version: 3.2.0
488
508
  required_rubygems_version: !ruby/object:Gem::Requirement
489
509
  requirements:
490
510
  - - ">="
491
511
  - !ruby/object:Gem::Version
492
512
  version: '0'
493
513
  requirements: []
494
- rubygems_version: 3.5.11
495
- signing_key:
514
+ rubygems_version: 3.5.16
515
+ signing_key:
496
516
  specification_version: 4
497
517
  summary: Tools for creating, working with, and running Rails applications.
498
518
  test_files: []
@@ -1,2 +0,0 @@
1
- //= link_tree ../images
2
- //= link_directory ../stylesheets .css
@@ -1,4 +0,0 @@
1
- module ApplicationCable
2
- class Channel < ActionCable::Channel::Base
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module ApplicationCable
2
- class Connection < ActionCable::Connection::Base
3
- end
4
- end