railties 8.0.0.beta1 → 8.0.0.rc1
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 +25 -0
- data/lib/rails/application/bootstrap.rb +0 -1
- data/lib/rails/application/configuration.rb +0 -12
- data/lib/rails/application/finisher.rb +0 -1
- data/lib/rails/command.rb +0 -6
- data/lib/rails/commands/console/irb_console.rb +11 -8
- data/lib/rails/commands/devcontainer/devcontainer_command.rb +1 -0
- data/lib/rails/console/methods.rb +5 -21
- data/lib/rails/engine/lazy_route_set.rb +11 -6
- data/lib/rails/engine.rb +2 -3
- data/lib/rails/gem_version.rb +1 -1
- data/lib/rails/generators/app_base.rb +0 -4
- data/lib/rails/generators/base.rb +0 -4
- data/lib/rails/generators/erb/authentication/authentication_generator.rb +3 -3
- data/lib/rails/generators/erb/authentication/templates/{views → app/views}/passwords/edit.html.erb +1 -1
- data/lib/rails/generators/rails/app/app_generator.rb +1 -0
- data/lib/rails/generators/rails/app/templates/Dockerfile.tt +1 -1
- data/lib/rails/generators/rails/app/templates/Gemfile.tt +3 -3
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +2 -2
- data/lib/rails/generators/rails/app/templates/bin/setup.tt +0 -1
- data/lib/rails/generators/rails/app/templates/config/deploy.yml.tt +7 -3
- data/lib/rails/generators/rails/app/templates/github/ci.yml.tt +4 -0
- data/lib/rails/generators/rails/authentication/authentication_generator.rb +14 -12
- data/lib/rails/generators/rails/authentication/templates/{controllers/concerns/authentication.rb → app/controllers/concerns/authentication.rb.tt} +2 -2
- data/lib/rails/generators/rails/authentication/templates/{models/user.rb → app/models/user.rb.tt} +1 -1
- data/lib/rails/generators/rails/devcontainer/devcontainer_generator.rb +5 -0
- data/lib/rails/generators/rails/devcontainer/templates/devcontainer/Dockerfile.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/Gemfile.tt +1 -1
- data/lib/rails/generators/test_unit/authentication/authentication_generator.rb +14 -0
- data/lib/rails/generators/test_unit/authentication/templates/test/fixtures/users.yml.tt +9 -0
- data/lib/rails/generators/test_unit/authentication/templates/test/models/user_test.rb.tt +7 -0
- data/lib/rails/test_unit/runner.rb +1 -0
- metadata +27 -26
- data/lib/rails/console/app.rb +0 -8
- data/lib/rails/console/helpers.rb +0 -8
- /data/lib/rails/generators/erb/authentication/templates/{views → app/views}/passwords/new.html.erb +0 -0
- /data/lib/rails/generators/erb/authentication/templates/{views → app/views}/sessions/new.html.erb +0 -0
- /data/lib/rails/generators/rails/authentication/templates/{controllers/passwords_controller.rb → app/controllers/passwords_controller.rb.tt} +0 -0
- /data/lib/rails/generators/rails/authentication/templates/{controllers/sessions_controller.rb → app/controllers/sessions_controller.rb.tt} +0 -0
- /data/lib/rails/generators/rails/authentication/templates/{mailers/passwords_mailer.rb → app/mailers/passwords_mailer.rb.tt} +0 -0
- /data/lib/rails/generators/rails/authentication/templates/{models/current.rb → app/models/current.rb.tt} +0 -0
- /data/lib/rails/generators/rails/authentication/templates/{models/session.rb → app/models/session.rb.tt} +0 -0
- /data/lib/rails/generators/rails/authentication/templates/{views/passwords_mailer/reset.html.erb → app/views/passwords_mailer/reset.html.erb.tt} +0 -0
- /data/lib/rails/generators/rails/authentication/templates/{views/passwords_mailer/reset.text.erb → app/views/passwords_mailer/reset.text.erb.tt} +0 -0
- /data/lib/rails/generators/rails/authentication/templates/test/mailers/previews/{passwords_mailer_preview.rb → passwords_mailer_preview.rb.tt} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48dcbad64d0cf8be785e5a5a80d210e4f0c77ab14abb4b623c3631607e304c0e
|
4
|
+
data.tar.gz: afe11b82be536134605bbd67230361f11d547108f3e6fc32c66462922038d9c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3467d3b3d227a967abf2aae1399900f6fdccba995e139e5d5efd9ba0eaa694e60909122de013fd8670d4c757fb5d294e3b4e8c257e50632c686e1155185521cc
|
7
|
+
data.tar.gz: 16972421f0101f97d3425a105507e886d5d588a48539ba6a4c32af7675281653268bd6b47df8a7370d5837b106f0a832bc35f54dcfdd1f5d12c1bb7408ba8dd1
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,28 @@
|
|
1
|
+
## Rails 8.0.0.rc1 (October 19, 2024) ##
|
2
|
+
|
3
|
+
* Remove deprecated support to extend Rails console through `Rails::ConsoleMethods`.
|
4
|
+
|
5
|
+
*Rafael Mendonça França*
|
6
|
+
|
7
|
+
* Remove deprecated file `rails/console/helpers`.
|
8
|
+
|
9
|
+
*Rafael Mendonça França*
|
10
|
+
|
11
|
+
* Remove deprecated file `rails/console/app`.
|
12
|
+
|
13
|
+
*Rafael Mendonça França*
|
14
|
+
|
15
|
+
* Remove deprecated `config.read_encrypted_secrets`.
|
16
|
+
|
17
|
+
*Rafael Mendonça França*
|
18
|
+
|
19
|
+
* Add Kamal support for devcontainers
|
20
|
+
|
21
|
+
Previously generated devcontainer could not use docker and therefore Kamal.
|
22
|
+
|
23
|
+
*Joé Dupuis*
|
24
|
+
|
25
|
+
|
1
26
|
## Rails 8.0.0.beta1 (September 26, 2024) ##
|
2
27
|
|
3
28
|
* Exit `rails g` with code 1 if generator could not be found.
|
@@ -326,10 +326,6 @@ module Rails
|
|
326
326
|
|
327
327
|
self.yjit = true
|
328
328
|
|
329
|
-
if respond_to?(:active_job)
|
330
|
-
active_job.enqueue_after_transaction_commit = :default
|
331
|
-
end
|
332
|
-
|
333
329
|
if respond_to?(:active_storage)
|
334
330
|
active_storage.web_image_content_types = %w( image/png image/jpeg image/gif image/webp )
|
335
331
|
end
|
@@ -367,14 +363,6 @@ module Rails
|
|
367
363
|
self.cache_classes = !value
|
368
364
|
end
|
369
365
|
|
370
|
-
def read_encrypted_secrets
|
371
|
-
Rails.deprecator.warn("'config.read_encrypted_secrets' is deprecated and will be removed in Rails 8.0.")
|
372
|
-
end
|
373
|
-
|
374
|
-
def read_encrypted_secrets=(value)
|
375
|
-
Rails.deprecator.warn("'config.read_encrypted_secrets=' is deprecated and will be removed in Rails 8.0.")
|
376
|
-
end
|
377
|
-
|
378
366
|
def encoding=(value)
|
379
367
|
@encoding = value
|
380
368
|
silence_warnings do
|
data/lib/rails/command.rb
CHANGED
@@ -23,12 +23,6 @@ module Rails
|
|
23
23
|
super(message)
|
24
24
|
end
|
25
25
|
|
26
|
-
if !Exception.method_defined?(:detailed_message) # Ruby 3.2+
|
27
|
-
def detailed_message(...)
|
28
|
-
message
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
26
|
if defined?(DidYouMean::Correctable) && defined?(DidYouMean::SpellChecker)
|
33
27
|
include DidYouMean::Correctable
|
34
28
|
|
@@ -6,7 +6,6 @@ require "irb/command"
|
|
6
6
|
module Rails
|
7
7
|
class Console
|
8
8
|
class RailsHelperBase < IRB::HelperMethod::Base
|
9
|
-
include ConsoleMethods
|
10
9
|
end
|
11
10
|
|
12
11
|
class ControllerHelper < RailsHelperBase
|
@@ -51,9 +50,16 @@ module Rails
|
|
51
50
|
end
|
52
51
|
end
|
53
52
|
|
54
|
-
class
|
55
|
-
|
53
|
+
class ReloadHelper < RailsHelperBase
|
54
|
+
description "Reloads the Rails application."
|
55
|
+
|
56
|
+
def execute
|
57
|
+
puts "Reloading..."
|
58
|
+
Rails.application.reloader.reload!
|
59
|
+
end
|
60
|
+
end
|
56
61
|
|
62
|
+
class ReloadCommand < IRB::Command::Base
|
57
63
|
category "Rails console"
|
58
64
|
description "Reloads the Rails application."
|
59
65
|
|
@@ -67,7 +73,8 @@ module Rails
|
|
67
73
|
IRB::HelperMethod.register(:controller, ControllerInstance)
|
68
74
|
IRB::HelperMethod.register(:new_session, NewSession)
|
69
75
|
IRB::HelperMethod.register(:app, AppInstance)
|
70
|
-
IRB::
|
76
|
+
IRB::HelperMethod.register(:reload!, ReloadHelper)
|
77
|
+
IRB::Command.register(:reload!, ReloadCommand)
|
71
78
|
|
72
79
|
class IRBConsole
|
73
80
|
def initialize(app)
|
@@ -110,10 +117,6 @@ module Rails
|
|
110
117
|
end
|
111
118
|
end
|
112
119
|
|
113
|
-
# Because some users/libs use Rails::ConsoleMethods to extend Rails console,
|
114
|
-
# we still include it for backward compatibility.
|
115
|
-
IRB::ExtendCommandBundle.include ConsoleMethods
|
116
|
-
|
117
120
|
# Respect user's choice of prompt mode.
|
118
121
|
IRB.conf[:PROMPT_MODE] = :RAILS_PROMPT if IRB.conf[:PROMPT_MODE] == :DEFAULT
|
119
122
|
IRB::Irb.new.run(IRB.conf)
|
@@ -27,6 +27,7 @@ module Rails
|
|
27
27
|
redis: !!((defined?(ActionCable) && !defined?(SolidCable)) || (defined?(ActiveJob) && !defined?(SolidQueue))),
|
28
28
|
system_test: File.exist?("test/application_system_test_case.rb"),
|
29
29
|
node: File.exist?(".node-version"),
|
30
|
+
kamal: File.exist?("config/deploy.yml"),
|
30
31
|
}
|
31
32
|
end
|
32
33
|
|
@@ -1,23 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.method_added(_method_name)
|
11
|
-
raise_deprecation_warning
|
12
|
-
super
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.raise_deprecation_warning
|
16
|
-
Rails.deprecator.warn(<<~MSG, caller_locations(2..2))
|
17
|
-
Extending Rails console through `Rails::ConsoleMethods` is deprecated and will be removed in Rails 8.0.
|
18
|
-
Please directly use IRB's extension API to add new commands or helpers to the console.
|
19
|
-
For more details, please visit: https://github.com/ruby/irb/blob/master/EXTEND_IRB.md
|
20
|
-
MSG
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
3
|
+
Rails.deprecator.warn(<<~MSG, caller_locations(0..1))
|
4
|
+
`rails/console/methods` has been deprecated and will be removed in Rails 8.1.
|
5
|
+
Please directly use IRB's extension API to add new commands or helpers to the console.
|
6
|
+
For more details, please visit: https://github.com/ruby/irb/blob/master/EXTEND_IRB.md
|
7
|
+
MSG
|
@@ -78,6 +78,11 @@ module Rails
|
|
78
78
|
super
|
79
79
|
end
|
80
80
|
|
81
|
+
def recognize_path_with_request(...)
|
82
|
+
Rails.application&.reload_routes_unless_loaded
|
83
|
+
super
|
84
|
+
end
|
85
|
+
|
81
86
|
def routes
|
82
87
|
Rails.application&.reload_routes_unless_loaded
|
83
88
|
super
|
@@ -87,19 +92,19 @@ module Rails
|
|
87
92
|
def method_missing_module
|
88
93
|
@method_missing_module ||= Module.new do
|
89
94
|
private
|
90
|
-
def method_missing(
|
95
|
+
def method_missing(...)
|
91
96
|
if Rails.application&.reload_routes_unless_loaded
|
92
|
-
public_send(
|
97
|
+
public_send(...)
|
93
98
|
else
|
94
|
-
super
|
99
|
+
super
|
95
100
|
end
|
96
101
|
end
|
97
102
|
|
98
|
-
def respond_to_missing?(
|
103
|
+
def respond_to_missing?(...)
|
99
104
|
if Rails.application&.reload_routes_unless_loaded
|
100
|
-
respond_to?(
|
105
|
+
respond_to?(...)
|
101
106
|
else
|
102
|
-
super
|
107
|
+
super
|
103
108
|
end
|
104
109
|
end
|
105
110
|
end
|
data/lib/rails/engine.rb
CHANGED
@@ -245,7 +245,7 @@ module Rails
|
|
245
245
|
# polymorphic_url(MyEngine::Article.new)
|
246
246
|
# # => "articles_path" # not "my_engine_articles_path"
|
247
247
|
#
|
248
|
-
#
|
248
|
+
# form_with(model: MyEngine::Article.new) do
|
249
249
|
# text_field :title # => <input type="text" name="article[title]" id="article_title" />
|
250
250
|
# end
|
251
251
|
#
|
@@ -294,7 +294,7 @@ module Rails
|
|
294
294
|
# All you need to do is pass the helper as the first element in array with
|
295
295
|
# attributes for URL:
|
296
296
|
#
|
297
|
-
#
|
297
|
+
# form_with(model: [my_engine, @user])
|
298
298
|
#
|
299
299
|
# This code will use <tt>my_engine.user_path(@user)</tt> to generate the proper route.
|
300
300
|
#
|
@@ -452,7 +452,6 @@ module Rails
|
|
452
452
|
# Load console and invoke the registered hooks.
|
453
453
|
# Check Rails::Railtie.console for more info.
|
454
454
|
def load_console(app = self)
|
455
|
-
require "rails/console/methods"
|
456
455
|
run_console_blocks(app)
|
457
456
|
self
|
458
457
|
end
|
data/lib/rails/gem_version.rb
CHANGED
@@ -659,10 +659,6 @@ module Rails
|
|
659
659
|
!(options[:skip_bundle] || options[:pretend])
|
660
660
|
end
|
661
661
|
|
662
|
-
def bundler_windows_platforms
|
663
|
-
Gem.rubygems_version >= Gem::Version.new("3.3.22") ? "windows" : "mswin mswin64 mingw x64_mingw"
|
664
|
-
end
|
665
|
-
|
666
662
|
def depends_on_system_test?
|
667
663
|
!(options[:skip_system_test] || options[:skip_test] || options[:api])
|
668
664
|
end
|
@@ -423,10 +423,6 @@ module Rails
|
|
423
423
|
path = File.expand_path(File.join(base_name, generator_name), base_root)
|
424
424
|
path if File.exist?(path)
|
425
425
|
end
|
426
|
-
|
427
|
-
def gem_ruby_version
|
428
|
-
Gem::Version.new(Gem::VERSION) >= Gem::Version.new("3.3.13") ? Gem.ruby_version : RUBY_VERSION
|
429
|
-
end
|
430
426
|
end
|
431
427
|
end
|
432
428
|
end
|
@@ -6,9 +6,9 @@ module Erb # :nodoc:
|
|
6
6
|
module Generators # :nodoc:
|
7
7
|
class AuthenticationGenerator < Rails::Generators::Base # :nodoc:
|
8
8
|
def create_files
|
9
|
-
template "
|
10
|
-
template "
|
11
|
-
template "
|
9
|
+
template "app/views/passwords/new.html.erb"
|
10
|
+
template "app/views/passwords/edit.html.erb"
|
11
|
+
template "app/views/sessions/new.html.erb"
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -266,6 +266,7 @@ module Rails
|
|
266
266
|
devcontainer_options = {
|
267
267
|
database: options[:database],
|
268
268
|
redis: options[:skip_solid] && !(options[:skip_action_cable] && options[:skip_active_job]),
|
269
|
+
kamal: !options[:skip_kamal],
|
269
270
|
system_test: depends_on_system_test?,
|
270
271
|
active_storage: !options[:skip_active_storage],
|
271
272
|
dev: options[:dev],
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# For a containerized dev environment, see Dev Containers: https://guides.rubyonrails.org/getting_started_with_devcontainer.html
|
9
9
|
|
10
10
|
# Make sure RUBY_VERSION matches the Ruby version in .ruby-version
|
11
|
-
ARG RUBY_VERSION=<%=
|
11
|
+
ARG RUBY_VERSION=<%= Gem.ruby_version %>
|
12
12
|
FROM docker.io/library/ruby:$RUBY_VERSION-slim AS base
|
13
13
|
|
14
14
|
# Rails app lives here
|
@@ -10,7 +10,7 @@ source "https://rubygems.org"
|
|
10
10
|
<% end -%>
|
11
11
|
|
12
12
|
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
13
|
-
gem "tzinfo-data", platforms: %i[
|
13
|
+
gem "tzinfo-data", platforms: %i[ windows jruby ]
|
14
14
|
<% unless options.skip_solid? -%>
|
15
15
|
|
16
16
|
<% if options.skip_action_cable? -%>
|
@@ -32,7 +32,7 @@ gem "bootsnap", require: false
|
|
32
32
|
<% unless options.skip_kamal? -%>
|
33
33
|
|
34
34
|
# Deploy this application anywhere as a Docker container [https://kamal-deploy.org]
|
35
|
-
gem "kamal",
|
35
|
+
gem "kamal", require: false
|
36
36
|
<% end -%>
|
37
37
|
<% unless options.skip_thruster? -%>
|
38
38
|
|
@@ -53,7 +53,7 @@ gem "thruster", require: false
|
|
53
53
|
|
54
54
|
group :development, :test do
|
55
55
|
# See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
|
56
|
-
gem "debug", platforms: %i[ mri
|
56
|
+
gem "debug", platforms: %i[ mri windows ], require: "debug/prelude"
|
57
57
|
<%- unless options.skip_brakeman? -%>
|
58
58
|
|
59
59
|
# Static analysis for security vulnerabilities [https://brakemanscanner.org/]
|
@@ -19,10 +19,10 @@
|
|
19
19
|
|
20
20
|
<%- style_link_target = options[:skip_asset_pipeline] ? "\"application\"" : ":app" -%>
|
21
21
|
<%- if options[:skip_hotwire] || options[:skip_javascript] -%>
|
22
|
-
<%%# Includes all stylesheet files in app/
|
22
|
+
<%%# Includes all stylesheet files in app/assets/stylesheets %>
|
23
23
|
<%%= stylesheet_link_tag <%= style_link_target %> %>
|
24
24
|
<%- else -%>
|
25
|
-
<%%# Includes all stylesheet files in app/
|
25
|
+
<%%# Includes all stylesheet files in app/assets/stylesheets %>
|
26
26
|
<%%= stylesheet_link_tag <%= style_link_target %>, "data-turbo-track": "reload" %>
|
27
27
|
<%- end -%>
|
28
28
|
</head>
|
@@ -13,8 +13,10 @@ servers:
|
|
13
13
|
# - 192.168.0.1
|
14
14
|
# cmd: bin/jobs
|
15
15
|
|
16
|
-
# Enable SSL auto certification via Let's Encrypt
|
17
|
-
#
|
16
|
+
# Enable SSL auto certification via Let's Encrypt and allow for multiple apps on a single web server.
|
17
|
+
# Remove this section when using multiple web servers and ensure you terminate SSL at your load balancer.
|
18
|
+
#
|
19
|
+
# Note: If using Cloudflare, set encryption mode in SSL/TLS setting to "Full" to enable CF-to-app encryption.
|
18
20
|
proxy:
|
19
21
|
ssl: true
|
20
22
|
host: app.example.com
|
@@ -56,6 +58,7 @@ env:
|
|
56
58
|
# WEB_CONCURRENCY: 2
|
57
59
|
|
58
60
|
# Match this to any external database server to configure Active Record correctly
|
61
|
+
# Use <%= app_name %>-db for a db accessory server on same machine via local kamal docker network.
|
59
62
|
# DB_HOST: 192.168.0.2
|
60
63
|
|
61
64
|
# Log everything from Rails
|
@@ -105,7 +108,8 @@ builder:
|
|
105
108
|
# db:
|
106
109
|
# image: mysql:8.0
|
107
110
|
# host: 192.168.0.2
|
108
|
-
# port
|
111
|
+
# # Change to 3306 to expose port to the world instead of just local network.
|
112
|
+
# port: "127.0.0.1:3306:3306"
|
109
113
|
# env:
|
110
114
|
# clear:
|
111
115
|
# MYSQL_ROOT_HOST: '%'
|
@@ -126,7 +126,11 @@ jobs:
|
|
126
126
|
DATABASE_URL: postgres://postgres:postgres@localhost:5432
|
127
127
|
<%- end -%>
|
128
128
|
# REDIS_URL: redis://localhost:6379/0
|
129
|
+
<%- if options[:api] -%>
|
130
|
+
run: bin/rails db:test:prepare test
|
131
|
+
<%- else -%>
|
129
132
|
run: bin/rails db:test:prepare test test:system
|
133
|
+
<%- end -%>
|
130
134
|
|
131
135
|
- name: Keep screenshots from failed system tests
|
132
136
|
uses: actions/upload-artifact@v4
|
@@ -11,24 +11,24 @@ module Rails
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def create_authentication_files
|
14
|
-
template "
|
15
|
-
template "
|
16
|
-
template "
|
14
|
+
template "app/models/session.rb"
|
15
|
+
template "app/models/user.rb"
|
16
|
+
template "app/models/current.rb"
|
17
17
|
|
18
|
-
template "
|
19
|
-
template "
|
20
|
-
template "
|
18
|
+
template "app/controllers/sessions_controller.rb"
|
19
|
+
template "app/controllers/concerns/authentication.rb"
|
20
|
+
template "app/controllers/passwords_controller.rb"
|
21
21
|
|
22
|
-
template "
|
22
|
+
template "app/mailers/passwords_mailer.rb"
|
23
23
|
|
24
|
-
template "
|
25
|
-
template "
|
24
|
+
template "app/views/passwords_mailer/reset.html.erb"
|
25
|
+
template "app/views/passwords_mailer/reset.text.erb"
|
26
26
|
|
27
|
-
template "test/mailers/previews/passwords_mailer_preview.rb"
|
27
|
+
template "test/mailers/previews/passwords_mailer_preview.rb"
|
28
28
|
end
|
29
29
|
|
30
30
|
def configure_application_controller
|
31
|
-
|
31
|
+
inject_into_class "app/controllers/application_controller.rb", "ApplicationController", " include Authentication\n"
|
32
32
|
end
|
33
33
|
|
34
34
|
def configure_authentication_routes
|
@@ -41,7 +41,7 @@ module Rails
|
|
41
41
|
uncomment_lines "Gemfile", /gem "bcrypt"/
|
42
42
|
Bundler.with_original_env { execute_command :bundle, "install --quiet" }
|
43
43
|
else
|
44
|
-
Bundler.with_original_env { execute_command :bundle, "add bcrypt
|
44
|
+
Bundler.with_original_env { execute_command :bundle, "add bcrypt", capture: true }
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
@@ -49,6 +49,8 @@ module Rails
|
|
49
49
|
generate "migration CreateUsers email_address:string!:uniq password_digest:string! --force"
|
50
50
|
generate "migration CreateSessions user:references ip_address:string user_agent:string --force"
|
51
51
|
end
|
52
|
+
|
53
|
+
hook_for :test_framework
|
52
54
|
end
|
53
55
|
end
|
54
56
|
end
|
@@ -14,7 +14,7 @@ module Authentication
|
|
14
14
|
|
15
15
|
private
|
16
16
|
def authenticated?
|
17
|
-
|
17
|
+
resume_session
|
18
18
|
end
|
19
19
|
|
20
20
|
def require_authentication
|
@@ -23,7 +23,7 @@ module Authentication
|
|
23
23
|
|
24
24
|
|
25
25
|
def resume_session
|
26
|
-
Current.session
|
26
|
+
Current.session ||= find_session_by_cookie
|
27
27
|
end
|
28
28
|
|
29
29
|
def find_session_by_cookie
|
@@ -26,6 +26,9 @@ module Rails
|
|
26
26
|
class_option :dev, type: :boolean, default: false,
|
27
27
|
desc: "For applications pointing to a local Rails checkout"
|
28
28
|
|
29
|
+
class_option :kamal, type: :boolean, default: true,
|
30
|
+
desc: "Include configuration for Kamal"
|
31
|
+
|
29
32
|
source_paths << File.expand_path(File.join(base_name, "app", "templates"), base_root)
|
30
33
|
|
31
34
|
def create_devcontainer
|
@@ -80,6 +83,7 @@ module Rails
|
|
80
83
|
@container_env["CAPYBARA_SERVER_PORT"] = "45678" if options[:system_test]
|
81
84
|
@container_env["SELENIUM_HOST"] = "selenium" if options[:system_test]
|
82
85
|
@container_env["REDIS_URL"] = "redis://redis:6379/1" if options[:redis]
|
86
|
+
@container_env["KAMAL_REGISTRY_PASSWORD"] = "$KAMAL_REGISTRY_PASSWORD" if options[:kamal]
|
83
87
|
@container_env["DB_HOST"] = database.name if database.service
|
84
88
|
|
85
89
|
@container_env
|
@@ -105,6 +109,7 @@ module Rails
|
|
105
109
|
|
106
110
|
@features["ghcr.io/rails/devcontainer/features/activestorage"] = {} if options[:active_storage]
|
107
111
|
@features["ghcr.io/devcontainers/features/node:1"] = {} if options[:node]
|
112
|
+
@features["ghcr.io/devcontainers/features/docker-outside-of-docker:1"] = {} if options[:kamal]
|
108
113
|
|
109
114
|
@features.merge!(database.feature) if database.feature
|
110
115
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/test_unit"
|
4
|
+
|
5
|
+
module TestUnit # :nodoc:
|
6
|
+
module Generators # :nodoc:
|
7
|
+
class AuthenticationGenerator < Rails::Generators::Base # :nodoc:
|
8
|
+
def create_user_test_files
|
9
|
+
template "test/fixtures/users.yml"
|
10
|
+
template "test/models/user_test.rb"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -125,6 +125,7 @@ module Rails
|
|
125
125
|
def list_tests(patterns)
|
126
126
|
tests = Rake::FileList[patterns.any? ? patterns : default_test_glob]
|
127
127
|
tests.exclude(default_test_exclude_glob) if patterns.empty?
|
128
|
+
tests.exclude(%r{test/isolation/assets/node_modules})
|
128
129
|
tests
|
129
130
|
end
|
130
131
|
|
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: 8.0.0.
|
4
|
+
version: 8.0.0.rc1
|
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-
|
11
|
+
date: 2024-10-19 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: 8.0.0.
|
19
|
+
version: 8.0.0.rc1
|
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: 8.0.0.
|
26
|
+
version: 8.0.0.rc1
|
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: 8.0.0.
|
33
|
+
version: 8.0.0.rc1
|
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: 8.0.0.
|
40
|
+
version: 8.0.0.rc1
|
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: 8.0.0.
|
123
|
+
version: 8.0.0.rc1
|
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: 8.0.0.
|
130
|
+
version: 8.0.0.rc1
|
131
131
|
description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
|
132
132
|
email: david@loudthinking.com
|
133
133
|
executables:
|
@@ -206,8 +206,6 @@ files:
|
|
206
206
|
- lib/rails/commands/unused_routes/unused_routes_command.rb
|
207
207
|
- lib/rails/commands/version/version_command.rb
|
208
208
|
- lib/rails/configuration.rb
|
209
|
-
- lib/rails/console/app.rb
|
210
|
-
- lib/rails/console/helpers.rb
|
211
209
|
- lib/rails/console/methods.rb
|
212
210
|
- lib/rails/deprecator.rb
|
213
211
|
- lib/rails/dev_caching.rb
|
@@ -228,9 +226,9 @@ files:
|
|
228
226
|
- lib/rails/generators/database.rb
|
229
227
|
- lib/rails/generators/erb.rb
|
230
228
|
- 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
|
229
|
+
- lib/rails/generators/erb/authentication/templates/app/views/passwords/edit.html.erb
|
230
|
+
- lib/rails/generators/erb/authentication/templates/app/views/passwords/new.html.erb
|
231
|
+
- lib/rails/generators/erb/authentication/templates/app/views/sessions/new.html.erb
|
234
232
|
- lib/rails/generators/erb/controller/controller_generator.rb
|
235
233
|
- lib/rails/generators/erb/controller/templates/view.html.erb.tt
|
236
234
|
- lib/rails/generators/erb/mailer/mailer_generator.rb
|
@@ -320,16 +318,16 @@ files:
|
|
320
318
|
- lib/rails/generators/rails/application_record/application_record_generator.rb
|
321
319
|
- lib/rails/generators/rails/authentication/USAGE
|
322
320
|
- 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/
|
331
|
-
- lib/rails/generators/rails/authentication/templates/views/passwords_mailer/reset.
|
332
|
-
- lib/rails/generators/rails/authentication/templates/
|
321
|
+
- lib/rails/generators/rails/authentication/templates/app/controllers/concerns/authentication.rb.tt
|
322
|
+
- lib/rails/generators/rails/authentication/templates/app/controllers/passwords_controller.rb.tt
|
323
|
+
- lib/rails/generators/rails/authentication/templates/app/controllers/sessions_controller.rb.tt
|
324
|
+
- lib/rails/generators/rails/authentication/templates/app/mailers/passwords_mailer.rb.tt
|
325
|
+
- lib/rails/generators/rails/authentication/templates/app/models/current.rb.tt
|
326
|
+
- lib/rails/generators/rails/authentication/templates/app/models/session.rb.tt
|
327
|
+
- lib/rails/generators/rails/authentication/templates/app/models/user.rb.tt
|
328
|
+
- lib/rails/generators/rails/authentication/templates/app/views/passwords_mailer/reset.html.erb.tt
|
329
|
+
- lib/rails/generators/rails/authentication/templates/app/views/passwords_mailer/reset.text.erb.tt
|
330
|
+
- lib/rails/generators/rails/authentication/templates/test/mailers/previews/passwords_mailer_preview.rb.tt
|
333
331
|
- lib/rails/generators/rails/benchmark/USAGE
|
334
332
|
- lib/rails/generators/rails/benchmark/benchmark_generator.rb
|
335
333
|
- lib/rails/generators/rails/benchmark/templates/benchmark.rb.tt
|
@@ -412,6 +410,9 @@ files:
|
|
412
410
|
- lib/rails/generators/resource_helpers.rb
|
413
411
|
- lib/rails/generators/test_case.rb
|
414
412
|
- lib/rails/generators/test_unit.rb
|
413
|
+
- lib/rails/generators/test_unit/authentication/authentication_generator.rb
|
414
|
+
- lib/rails/generators/test_unit/authentication/templates/test/fixtures/users.yml.tt
|
415
|
+
- lib/rails/generators/test_unit/authentication/templates/test/models/user_test.rb.tt
|
415
416
|
- lib/rails/generators/test_unit/controller/controller_generator.rb
|
416
417
|
- lib/rails/generators/test_unit/controller/templates/functional_test.rb.tt
|
417
418
|
- lib/rails/generators/test_unit/generator/generator_generator.rb
|
@@ -489,10 +490,10 @@ licenses:
|
|
489
490
|
- MIT
|
490
491
|
metadata:
|
491
492
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
492
|
-
changelog_uri: https://github.com/rails/rails/blob/v8.0.0.
|
493
|
-
documentation_uri: https://api.rubyonrails.org/v8.0.0.
|
493
|
+
changelog_uri: https://github.com/rails/rails/blob/v8.0.0.rc1/railties/CHANGELOG.md
|
494
|
+
documentation_uri: https://api.rubyonrails.org/v8.0.0.rc1/
|
494
495
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
495
|
-
source_code_uri: https://github.com/rails/rails/tree/v8.0.0.
|
496
|
+
source_code_uri: https://github.com/rails/rails/tree/v8.0.0.rc1/railties
|
496
497
|
rubygems_mfa_required: 'true'
|
497
498
|
post_install_message:
|
498
499
|
rdoc_options:
|
data/lib/rails/console/app.rb
DELETED
/data/lib/rails/generators/erb/authentication/templates/{views → app/views}/passwords/new.html.erb
RENAMED
File without changes
|
/data/lib/rails/generators/erb/authentication/templates/{views → app/views}/sessions/new.html.erb
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|