railties 7.2.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 (101) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +111 -307
  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/console/irb_console.rb +2 -12
  14. data/lib/rails/commands/credentials/USAGE +4 -4
  15. data/lib/rails/commands/credentials/credentials_command.rb +5 -1
  16. data/lib/rails/commands/dev/dev_command.rb +1 -1
  17. data/lib/rails/commands/devcontainer/devcontainer_command.rb +1 -1
  18. data/lib/rails/commands/stats/stats_command.rb +19 -0
  19. data/lib/rails/dev_caching.rb +2 -2
  20. data/lib/rails/engine/configuration.rb +3 -1
  21. data/lib/rails/engine/lazy_route_set.rb +109 -0
  22. data/lib/rails/engine.rb +8 -3
  23. data/lib/rails/gem_version.rb +4 -4
  24. data/lib/rails/generators/app_base.rb +46 -24
  25. data/lib/rails/generators/database.rb +101 -67
  26. data/lib/rails/generators/erb/authentication/authentication_generator.rb +15 -0
  27. data/lib/rails/generators/erb/authentication/templates/views/passwords/edit.html.erb +9 -0
  28. data/lib/rails/generators/erb/authentication/templates/views/passwords/new.html.erb +8 -0
  29. data/lib/rails/generators/erb/authentication/templates/views/sessions/new.html.erb +11 -0
  30. data/lib/rails/generators/generated_attribute.rb +16 -11
  31. data/lib/rails/generators/rails/app/app_generator.rb +19 -28
  32. data/lib/rails/generators/rails/app/templates/Dockerfile.tt +12 -3
  33. data/lib/rails/generators/rails/app/templates/Gemfile.tt +23 -8
  34. data/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css.tt +6 -11
  35. data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +10 -3
  36. data/lib/rails/generators/rails/app/templates/bin/dev.tt +1 -0
  37. data/lib/rails/generators/rails/app/templates/bin/setup.tt +5 -7
  38. data/lib/rails/generators/rails/app/templates/bin/thrust.tt +4 -0
  39. data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +23 -0
  40. data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +23 -0
  41. data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +40 -0
  42. data/lib/rails/generators/rails/app/templates/config/databases/trilogy.yml.tt +23 -0
  43. data/lib/rails/generators/rails/app/templates/config/deploy.yml.tt +124 -0
  44. data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +12 -23
  45. data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +31 -51
  46. data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +5 -19
  47. data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +0 -7
  48. data/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt +1 -1
  49. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_8_0.rb.tt +25 -0
  50. data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +11 -2
  51. data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +3 -3
  52. data/lib/rails/generators/rails/app/templates/docker-entrypoint.tt +4 -3
  53. data/lib/rails/generators/rails/app/templates/dockerignore.tt +1 -2
  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 +4 -2
  78. data/lib/rails/generators/rails/devcontainer/templates/devcontainer/devcontainer.json.tt +1 -1
  79. data/lib/rails/generators/rails/plugin/plugin_generator.rb +7 -9
  80. data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +2 -2
  81. data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +3 -3
  82. data/lib/rails/generators/rails/script/USAGE +18 -0
  83. data/lib/rails/generators/rails/script/script_generator.rb +18 -0
  84. data/lib/rails/generators/rails/script/templates/script.rb.tt +3 -0
  85. data/lib/rails/generators.rb +1 -0
  86. data/lib/rails/info_controller.rb +10 -4
  87. data/lib/rails/rack/silence_request.rb +33 -0
  88. data/lib/rails/rack.rb +1 -0
  89. data/lib/rails/source_annotation_extractor.rb +31 -14
  90. data/lib/rails/tasks/statistics.rake +13 -28
  91. data/lib/rails/templates/rails/info/notes.html.erb +65 -0
  92. metadata +42 -22
  93. data/lib/rails/generators/rails/app/templates/app/assets/config/manifest.js.tt +0 -2
  94. data/lib/rails/generators/rails/app/templates/app/channels/application_cable/channel.rb.tt +0 -4
  95. data/lib/rails/generators/rails/app/templates/app/channels/application_cable/connection.rb.tt +0 -4
  96. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_2.rb.tt +0 -70
  97. data/lib/rails/generators/rails/app/templates/config/initializers/permissions_policy.rb.tt +0 -13
  98. data/lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt +0 -13
  99. data/lib/rails/generators/rails/plugin/templates/rails/dummy_manifest.js.tt +0 -10
  100. data/lib/rails/generators/rails/plugin/templates/rails/engine_manifest.js.tt +0 -6
  101. data/lib/rails/generators/rails/plugin/templates/rails/javascripts.js.tt +0 -17
@@ -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
@@ -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.2.1
4
+ version: 8.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-10 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.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.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.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.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.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.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,10 +489,10 @@ 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.2.1/railties/CHANGELOG.md
473
- documentation_uri: https://api.rubyonrails.org/v7.2.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.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
497
  post_install_message:
478
498
  rdoc_options:
@@ -484,14 +504,14 @@ 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.22
514
+ rubygems_version: 3.5.16
495
515
  signing_key:
496
516
  specification_version: 4
497
517
  summary: Tools for creating, working with, and running Rails applications.
@@ -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
@@ -1,70 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
- #
3
- # This file eases your Rails 7.2 framework defaults upgrade.
4
- #
5
- # Uncomment each configuration one by one to switch to the new default.
6
- # Once your application is ready to run with all new defaults, you can remove
7
- # this file and set the `config.load_defaults` to `7.2`.
8
- #
9
- # Read the Guide for Upgrading Ruby on Rails for more info on each option.
10
- # https://guides.rubyonrails.org/upgrading_ruby_on_rails.html
11
-
12
- ###
13
- # Controls whether Active Job's `#perform_later` and similar methods automatically defer
14
- # the job queuing to after the current Active Record transaction is committed.
15
- #
16
- # Example:
17
- # Topic.transaction do
18
- # topic = Topic.create(...)
19
- # NewTopicNotificationJob.perform_later(topic)
20
- # end
21
- #
22
- # In this example, if the configuration is set to `:never`, the job will
23
- # be enqueued immediately, even though the `Topic` hasn't been committed yet.
24
- # Because of this, if the job is picked up almost immediately, or if the
25
- # transaction doesn't succeed for some reason, the job will fail to find this
26
- # topic in the database.
27
- #
28
- # If `enqueue_after_transaction_commit` is set to `:default`, the queue adapter
29
- # will define the behaviour.
30
- #
31
- # Note: Active Job backends can disable this feature. This is generally done by
32
- # backends that use the same database as Active Record as a queue, hence they
33
- # don't need this feature.
34
- #++
35
- # Rails.application.config.active_job.enqueue_after_transaction_commit = :default
36
-
37
- ###
38
- # Adds image/webp to the list of content types Active Storage considers as an image
39
- # Prevents automatic conversion to a fallback PNG, and assumes clients support WebP, as they support gif, jpeg, and png.
40
- # This is possible due to broad browser support for WebP, but older browsers and email clients may still not support
41
- # WebP. Requires imagemagick/libvips built with WebP support.
42
- #++
43
- # Rails.application.config.active_storage.web_image_content_types = %w[image/png image/jpeg image/gif image/webp]
44
-
45
- ###
46
- # Enable validation of migration timestamps. When set, an ActiveRecord::InvalidMigrationTimestampError
47
- # will be raised if the timestamp prefix for a migration is more than a day ahead of the timestamp
48
- # associated with the current time. This is done to prevent forward-dating of migration files, which can
49
- # impact migration generation and other migration commands.
50
- #
51
- # Applications with existing timestamped migrations that do not adhere to the
52
- # expected format can disable validation by setting this config to `false`.
53
- #++
54
- # Rails.application.config.active_record.validate_migration_timestamps = true
55
-
56
- ###
57
- # Controls whether the PostgresqlAdapter should decode dates automatically with manual queries.
58
- #
59
- # Example:
60
- # ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.select_value("select '2024-01-01'::date") #=> Date
61
- #
62
- # This query used to return a `String`.
63
- #++
64
- # Rails.application.config.active_record.postgresql_adapter_decode_dates = true
65
-
66
- ###
67
- # Enables YJIT as of Ruby 3.3, to bring sizeable performance improvements. If you are
68
- # deploying to a memory constrained environment you may want to set this to `false`.
69
- #++
70
- # Rails.application.config.yjit = true
@@ -1,13 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Define an application-wide HTTP permissions policy. For further
4
- # information see: https://developers.google.com/web/updates/2018/06/feature-policy
5
-
6
- # Rails.application.config.permissions_policy do |policy|
7
- # policy.camera :none
8
- # policy.gyroscope :none
9
- # policy.microphone :none
10
- # policy.usb :none
11
- # policy.fullscreen :self
12
- # policy.payment :self, "https://secure.example.com"
13
- # end
@@ -1,13 +0,0 @@
1
- require "test_helper"
2
-
3
- module ApplicationCable
4
- class ConnectionTest < ActionCable::Connection::TestCase
5
- # test "connects with cookies" do
6
- # cookies.signed[:user_id] = 42
7
- #
8
- # connect
9
- #
10
- # assert_equal connection.user_id, "42"
11
- # end
12
- end
13
- end
@@ -1,10 +0,0 @@
1
- <% unless api? -%>
2
- //= link_tree ../images
3
- <% end -%>
4
- <% unless options.skip_javascript -%>
5
- //= link_directory ../javascripts .js
6
- <% end -%>
7
- //= link_directory ../stylesheets .css
8
- <% if mountable? && !api? -%>
9
- //= link <%= underscored_name %>_manifest.js
10
- <% end -%>
@@ -1,6 +0,0 @@
1
- <% if mountable? -%>
2
- <% if !options.skip_javascript -%>
3
- //= link_directory ../javascripts/<%= namespaced_name %> .js
4
- <% end -%>
5
- //= link_directory ../stylesheets/<%= namespaced_name %> .css
6
- <% end -%>
@@ -1,17 +0,0 @@
1
- // This is a manifest file that'll be compiled into application.js, which will include all the files
2
- // listed below.
3
- //
4
- // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
- // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
- //
7
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
- // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
- //
10
- // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
- // about supported directives.
12
- //
13
- //= require rails-ujs
14
- <% unless skip_active_storage? -%>
15
- //= require activestorage
16
- <% end -%>
17
- //= require_tree .