railties 7.2.2.1 → 7.2.3
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 +17 -0
- data/README.rdoc +1 -1
- data/lib/minitest/rails_plugin.rb +1 -1
- data/lib/rails/application/bootstrap.rb +1 -3
- data/lib/rails/application/configuration.rb +5 -7
- data/lib/rails/application.rb +12 -9
- data/lib/rails/backtrace_cleaner.rb +1 -1
- data/lib/rails/commands/console/irb_console.rb +0 -13
- data/lib/rails/commands/test/test_command.rb +0 -2
- data/lib/rails/gem_version.rb +2 -2
- data/lib/rails/generators/actions.rb +9 -5
- data/lib/rails/generators/app_base.rb +7 -3
- data/lib/rails/generators/rails/app/templates/github/ci.yml.tt +3 -1
- data/lib/rails/generators/rails/plugin/templates/github/ci.yml.tt +3 -2
- data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +2 -2
- data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +2 -2
- data/lib/rails/generators.rb +5 -5
- data/lib/rails/test_unit/runner.rb +7 -3
- data/lib/rails/test_unit/test_parser.rb +18 -15
- metadata +40 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 03707d5a40324d24b583b991da92609ad85de44f8c3a6bb04f03b0281916b6e2
|
|
4
|
+
data.tar.gz: a8bef9574493a2ee9cafcb97558267c8b48a6c63038c0198d2e5c815bb4801fd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2d3f02e3af390201315588a8e8b8ff1aae3356c97d634f61ab99cdd6c627e525014ea9781fb406b7d89d70b33b3446e6235c4f0e7bd9d508bf5690511ae4af31
|
|
7
|
+
data.tar.gz: 1e931d3f0d663841df219a0a2d17ee4abadf4b5f785e2747cff8012738dad6e7a57e4c7c40c8f21002b1d36ccd342c2e821a9644a3a3074606beaa18bff4446d
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
## Rails 7.2.3 (October 28, 2025) ##
|
|
2
|
+
|
|
3
|
+
* Use `secret_key_base` from ENV or credentials when present locally.
|
|
4
|
+
|
|
5
|
+
When ENV["SECRET_KEY_BASE"] or
|
|
6
|
+
`Rails.application.credentials.secret_key_base` is set for test or
|
|
7
|
+
development, it is used for the `Rails.config.secret_key_base`,
|
|
8
|
+
instead of generating a `tmp/local_secret.txt` file.
|
|
9
|
+
|
|
10
|
+
*Petrik de Heus*
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## Rails 7.2.2.2 (August 13, 2025) ##
|
|
14
|
+
|
|
15
|
+
* No changes.
|
|
16
|
+
|
|
17
|
+
|
|
1
18
|
## Rails 7.2.2.1 (December 10, 2024) ##
|
|
2
19
|
|
|
3
20
|
* No changes.
|
data/README.rdoc
CHANGED
|
@@ -34,6 +34,6 @@ Bug reports can be filed for the Ruby on \Rails project here:
|
|
|
34
34
|
|
|
35
35
|
* https://github.com/rails/rails/issues
|
|
36
36
|
|
|
37
|
-
Feature requests should be discussed on the
|
|
37
|
+
Feature requests should be discussed on the rubyonrails-core forum here:
|
|
38
38
|
|
|
39
39
|
* https://discuss.rubyonrails.org/c/rubyonrails-core
|
|
@@ -60,9 +60,7 @@ module Rails
|
|
|
60
60
|
end
|
|
61
61
|
else
|
|
62
62
|
Rails.logger.level = ActiveSupport::Logger.const_get(config.log_level.to_s.upcase)
|
|
63
|
-
|
|
64
|
-
broadcast_logger.formatter = Rails.logger.formatter
|
|
65
|
-
Rails.logger = broadcast_logger
|
|
63
|
+
Rails.logger = ActiveSupport::BroadcastLogger.new(Rails.logger)
|
|
66
64
|
end
|
|
67
65
|
end
|
|
68
66
|
|
|
@@ -500,16 +500,18 @@ module Rails
|
|
|
500
500
|
|
|
501
501
|
def secret_key_base
|
|
502
502
|
@secret_key_base || begin
|
|
503
|
-
self.secret_key_base = if
|
|
503
|
+
self.secret_key_base = if ENV["SECRET_KEY_BASE_DUMMY"]
|
|
504
504
|
generate_local_secret
|
|
505
505
|
else
|
|
506
|
-
ENV["SECRET_KEY_BASE"] ||
|
|
506
|
+
ENV["SECRET_KEY_BASE"] ||
|
|
507
|
+
Rails.application.credentials.secret_key_base ||
|
|
508
|
+
(Rails.env.local? && generate_local_secret)
|
|
507
509
|
end
|
|
508
510
|
end
|
|
509
511
|
end
|
|
510
512
|
|
|
511
513
|
def secret_key_base=(new_secret_key_base)
|
|
512
|
-
if new_secret_key_base.nil? &&
|
|
514
|
+
if new_secret_key_base.nil? && Rails.env.local?
|
|
513
515
|
@secret_key_base = generate_local_secret
|
|
514
516
|
elsif new_secret_key_base.is_a?(String) && new_secret_key_base.present?
|
|
515
517
|
@secret_key_base = new_secret_key_base
|
|
@@ -637,10 +639,6 @@ module Rails
|
|
|
637
639
|
|
|
638
640
|
File.binread(key_file)
|
|
639
641
|
end
|
|
640
|
-
|
|
641
|
-
def generate_local_secret?
|
|
642
|
-
Rails.env.local? || ENV["SECRET_KEY_BASE_DUMMY"]
|
|
643
|
-
end
|
|
644
642
|
end
|
|
645
643
|
end
|
|
646
644
|
end
|
data/lib/rails/application.rb
CHANGED
|
@@ -454,18 +454,21 @@ module Rails
|
|
|
454
454
|
# is used to create all ActiveSupport::MessageVerifier and ActiveSupport::MessageEncryptor instances,
|
|
455
455
|
# including the ones that sign and encrypt cookies.
|
|
456
456
|
#
|
|
457
|
-
#
|
|
458
|
-
#
|
|
457
|
+
# We look for it first in <tt>ENV["SECRET_KEY_BASE"]</tt>, then in
|
|
458
|
+
# +credentials.secret_key_base+. For most applications, the correct place
|
|
459
|
+
# to store it is in the encrypted credentials file.
|
|
459
460
|
#
|
|
460
|
-
#
|
|
461
|
-
#
|
|
462
|
-
#
|
|
461
|
+
# In development and test, if the secret_key_base is still empty, it is
|
|
462
|
+
# randomly generated and stored in a temporary file in
|
|
463
|
+
# <tt>tmp/local_secret.txt</tt>.
|
|
463
464
|
#
|
|
464
|
-
#
|
|
465
|
+
# Generating a random secret_key_base and storing it in
|
|
466
|
+
# <tt>tmp/local_secret.txt</tt> can also be triggered by setting
|
|
467
|
+
# <tt>ENV["SECRET_KEY_BASE_DUMMY"]</tt>. This is useful when precompiling
|
|
468
|
+
# assets for production as part of a build step that otherwise does not
|
|
469
|
+
# need access to the production secrets.
|
|
465
470
|
#
|
|
466
|
-
#
|
|
467
|
-
# then +credentials.secret_key_base+. For most applications, the correct place to store it is in the
|
|
468
|
-
# encrypted credentials file.
|
|
471
|
+
# Dockerfile example: <tt>RUN SECRET_KEY_BASE_DUMMY=1 bundle exec rails assets:precompile</tt>.
|
|
469
472
|
def secret_key_base
|
|
470
473
|
config.secret_key_base
|
|
471
474
|
end
|
|
@@ -5,7 +5,7 @@ require "active_support/core_ext/string/access"
|
|
|
5
5
|
|
|
6
6
|
module Rails
|
|
7
7
|
class BacktraceCleaner < ActiveSupport::BacktraceCleaner # :nodoc:
|
|
8
|
-
APP_DIRS_PATTERN = /\A(?:\.\/)?(?:app|config|lib|test|\(\w*\))/
|
|
8
|
+
APP_DIRS_PATTERN = /\A(?:\.\/)?(?:app|config|lib|test|\(\w+(?:-\w+)*\))/
|
|
9
9
|
RENDER_TEMPLATE_PATTERN = /:in [`'].*_\w+_{2,3}\d+_\d+'/
|
|
10
10
|
|
|
11
11
|
def initialize
|
|
@@ -60,24 +60,11 @@ module Rails
|
|
|
60
60
|
end
|
|
61
61
|
end
|
|
62
62
|
|
|
63
|
-
class ReloadCommand < IRB::Command::Base
|
|
64
|
-
include ConsoleMethods
|
|
65
|
-
|
|
66
|
-
category "Rails console"
|
|
67
|
-
description "Reloads the Rails application."
|
|
68
|
-
|
|
69
|
-
def execute(*)
|
|
70
|
-
puts "Reloading..."
|
|
71
|
-
Rails.application.reloader.reload!
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
63
|
IRB::HelperMethod.register(:helper, ControllerHelper)
|
|
76
64
|
IRB::HelperMethod.register(:controller, ControllerInstance)
|
|
77
65
|
IRB::HelperMethod.register(:new_session, NewSession)
|
|
78
66
|
IRB::HelperMethod.register(:app, AppInstance)
|
|
79
67
|
IRB::HelperMethod.register(:reload!, ReloadHelper)
|
|
80
|
-
IRB::Command.register(:reload!, ReloadCommand)
|
|
81
68
|
|
|
82
69
|
class IRBConsole
|
|
83
70
|
def initialize(app)
|
|
@@ -31,8 +31,6 @@ module Rails
|
|
|
31
31
|
Rails::TestUnit::Runner.parse_options(args)
|
|
32
32
|
run_prepare_task if self.args.none?(EXACT_TEST_ARGUMENT_PATTERN)
|
|
33
33
|
Rails::TestUnit::Runner.run(args)
|
|
34
|
-
rescue Rails::TestUnit::InvalidTestError => error
|
|
35
|
-
raise ArgumentError, error.message
|
|
36
34
|
end
|
|
37
35
|
|
|
38
36
|
# Define Thor tasks to avoid going through Rake and booting twice when using bin/rails test:*
|
data/lib/rails/gem_version.rb
CHANGED
|
@@ -445,8 +445,8 @@ module Rails
|
|
|
445
445
|
|
|
446
446
|
private
|
|
447
447
|
# Define log for backwards compatibility. If just one argument is sent,
|
|
448
|
-
# invoke say
|
|
449
|
-
# similarly to say_status
|
|
448
|
+
# invoke +say+, otherwise invoke +say_status+. Differently from +say+ and
|
|
449
|
+
# similarly to +say_status+, this method respects the +quiet?+ option given.
|
|
450
450
|
def log(*args) # :doc:
|
|
451
451
|
if args.size == 1
|
|
452
452
|
say args.first.to_s unless options.quiet?
|
|
@@ -456,7 +456,7 @@ module Rails
|
|
|
456
456
|
end
|
|
457
457
|
end
|
|
458
458
|
|
|
459
|
-
# Runs the supplied command using either
|
|
459
|
+
# Runs the supplied command using either +rake+ or +rails+
|
|
460
460
|
# based on the executor parameter provided.
|
|
461
461
|
def execute_command(executor, command, options = {}) # :doc:
|
|
462
462
|
log executor, command
|
|
@@ -490,12 +490,16 @@ module Rails
|
|
|
490
490
|
end
|
|
491
491
|
alias rebase_indentation optimize_indentation
|
|
492
492
|
|
|
493
|
-
#
|
|
493
|
+
# Returns a string corresponding to the current indentation level
|
|
494
|
+
# (i.e. 2 * <code>@indentation</code> spaces). See also
|
|
495
|
+
# #with_indentation, which can be used to manage the indentation level.
|
|
494
496
|
def indentation # :doc:
|
|
495
497
|
" " * @indentation
|
|
496
498
|
end
|
|
497
499
|
|
|
498
|
-
#
|
|
500
|
+
# Increases the current indentation indentation level for the duration
|
|
501
|
+
# of the given block, and decreases it after the block ends. Call
|
|
502
|
+
# #indentation to get an indentation string.
|
|
499
503
|
def with_indentation(&block) # :doc:
|
|
500
504
|
@indentation += 1
|
|
501
505
|
instance_eval(&block)
|
|
@@ -589,7 +589,7 @@ module Rails
|
|
|
589
589
|
|
|
590
590
|
def dockerfile_build_packages
|
|
591
591
|
# start with the essentials
|
|
592
|
-
packages = %w(build-essential git pkg-config)
|
|
592
|
+
packages = %w(build-essential git pkg-config libyaml-dev)
|
|
593
593
|
|
|
594
594
|
# add database support
|
|
595
595
|
packages << database.build_package unless skip_active_record?
|
|
@@ -665,7 +665,7 @@ module Rails
|
|
|
665
665
|
end
|
|
666
666
|
|
|
667
667
|
def depend_on_bootsnap?
|
|
668
|
-
!options[:skip_bootsnap] && !options[:dev] && !
|
|
668
|
+
!options[:skip_bootsnap] && !options[:dev] && !jruby?
|
|
669
669
|
end
|
|
670
670
|
|
|
671
671
|
def target_rails_prerelease(self_command = "new")
|
|
@@ -722,7 +722,7 @@ module Rails
|
|
|
722
722
|
end
|
|
723
723
|
|
|
724
724
|
def add_bundler_platforms
|
|
725
|
-
if bundle_install?
|
|
725
|
+
if bundle_install? && !jruby?
|
|
726
726
|
# The vast majority of Rails apps will be deployed on `x86_64-linux`.
|
|
727
727
|
bundle_command("lock --add-platform=x86_64-linux")
|
|
728
728
|
|
|
@@ -731,6 +731,10 @@ module Rails
|
|
|
731
731
|
end
|
|
732
732
|
end
|
|
733
733
|
|
|
734
|
+
def jruby?
|
|
735
|
+
defined?(JRUBY_VERSION)
|
|
736
|
+
end
|
|
737
|
+
|
|
734
738
|
def generate_bundler_binstub
|
|
735
739
|
if bundle_install?
|
|
736
740
|
bundle_command("binstubs bundler")
|
|
@@ -120,8 +120,10 @@ jobs:
|
|
|
120
120
|
- name: Run tests
|
|
121
121
|
env:
|
|
122
122
|
RAILS_ENV: test
|
|
123
|
-
<%- if options[:database] == "mysql"
|
|
123
|
+
<%- if options[:database] == "mysql" -%>
|
|
124
124
|
DATABASE_URL: mysql2://127.0.0.1:3306
|
|
125
|
+
<%- elsif options[:database] == "trilogy" -%>
|
|
126
|
+
DATABASE_URL: trilogy://127.0.0.1:3306
|
|
125
127
|
<%- elsif options[:database] == "postgresql" -%>
|
|
126
128
|
DATABASE_URL: postgres://postgres:postgres@localhost:5432
|
|
127
129
|
<%- end -%>
|
|
@@ -84,8 +84,10 @@ jobs:
|
|
|
84
84
|
- name: Run tests
|
|
85
85
|
env:
|
|
86
86
|
RAILS_ENV: test
|
|
87
|
-
<%- if options[:database] == "mysql"
|
|
87
|
+
<%- if options[:database] == "mysql" -%>
|
|
88
88
|
DATABASE_URL: mysql2://127.0.0.1:3306
|
|
89
|
+
<%- elsif options[:database] == "trilogy" -%>
|
|
90
|
+
DATABASE_URL: trilogy://127.0.0.1:3306
|
|
89
91
|
<%- elsif options[:database] == "postgresql" -%>
|
|
90
92
|
DATABASE_URL: postgres://postgres:postgres@localhost:5432
|
|
91
93
|
<%- end -%>
|
|
@@ -100,4 +102,3 @@ jobs:
|
|
|
100
102
|
path: ${{ github.workspace }}/tmp/screenshots
|
|
101
103
|
if-no-files-found: ignore
|
|
102
104
|
<% end -%>
|
|
103
|
-
|
|
@@ -21,7 +21,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
|
21
21
|
if @<%= orm_instance.save %>
|
|
22
22
|
render json: <%= "@#{singular_table_name}" %>, status: :created, location: <%= "@#{singular_table_name}" %>
|
|
23
23
|
else
|
|
24
|
-
render json: <%= "@#{orm_instance.errors}" %>, status:
|
|
24
|
+
render json: <%= "@#{orm_instance.errors}" %>, status: <%= ActionDispatch::Constants::UNPROCESSABLE_CONTENT.inspect %>
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
@@ -30,7 +30,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
|
30
30
|
if @<%= orm_instance.update("#{singular_table_name}_params") %>
|
|
31
31
|
render json: <%= "@#{singular_table_name}" %>
|
|
32
32
|
else
|
|
33
|
-
render json: <%= "@#{orm_instance.errors}" %>, status:
|
|
33
|
+
render json: <%= "@#{orm_instance.errors}" %>, status: <%= ActionDispatch::Constants::UNPROCESSABLE_CONTENT.inspect %>
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
|
|
@@ -27,7 +27,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
|
27
27
|
if @<%= orm_instance.save %>
|
|
28
28
|
redirect_to <%= redirect_resource_name %>, notice: <%= %("#{human_name} was successfully created.") %>
|
|
29
29
|
else
|
|
30
|
-
render :new, status:
|
|
30
|
+
render :new, status: <%= ActionDispatch::Constants::UNPROCESSABLE_CONTENT.inspect %>
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
@@ -36,7 +36,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
|
36
36
|
if @<%= orm_instance.update("#{singular_table_name}_params") %>
|
|
37
37
|
redirect_to <%= redirect_resource_name %>, notice: <%= %("#{human_name} was successfully updated.") %>, status: :see_other
|
|
38
38
|
else
|
|
39
|
-
render :edit, status:
|
|
39
|
+
render :edit, status: <%= ActionDispatch::Constants::UNPROCESSABLE_CONTENT.inspect %>
|
|
40
40
|
end
|
|
41
41
|
end
|
|
42
42
|
|
data/lib/rails/generators.rb
CHANGED
|
@@ -97,11 +97,11 @@ module Rails
|
|
|
97
97
|
# generator group to fall back to another group in case of missing generators,
|
|
98
98
|
# they can add a fallback.
|
|
99
99
|
#
|
|
100
|
-
# For example, shoulda is considered a test_framework and is an extension
|
|
101
|
-
# of test_unit
|
|
102
|
-
# test_unit ones.
|
|
100
|
+
# For example, shoulda is considered a +test_framework+ and is an extension
|
|
101
|
+
# of +test_unit+. However, most part of shoulda generators are similar to
|
|
102
|
+
# +test_unit+ ones.
|
|
103
103
|
#
|
|
104
|
-
# Shoulda then can tell generators to search for test_unit generators when
|
|
104
|
+
# Shoulda then can tell generators to search for +test_unit+ generators when
|
|
105
105
|
# some of them are not available by adding a fallback:
|
|
106
106
|
#
|
|
107
107
|
# Rails::Generators.fallbacks[:shoulda] = :test_unit
|
|
@@ -316,7 +316,7 @@ module Rails
|
|
|
316
316
|
|
|
317
317
|
def run_after_generate_callback
|
|
318
318
|
if defined?(@@generated_files) && !@@generated_files.empty?
|
|
319
|
-
|
|
319
|
+
after_generate_callbacks.each do |callback|
|
|
320
320
|
callback.call(@@generated_files)
|
|
321
321
|
end
|
|
322
322
|
@@generated_files = []
|
|
@@ -9,13 +9,17 @@ require "rails/test_unit/test_parser"
|
|
|
9
9
|
|
|
10
10
|
module Rails
|
|
11
11
|
module TestUnit
|
|
12
|
-
class InvalidTestError <
|
|
12
|
+
class InvalidTestError < ArgumentError
|
|
13
13
|
def initialize(path, suggestion)
|
|
14
|
-
super(<<~MESSAGE.
|
|
14
|
+
super(<<~MESSAGE.rstrip)
|
|
15
15
|
Could not load test file: #{path}.
|
|
16
16
|
#{suggestion}
|
|
17
17
|
MESSAGE
|
|
18
18
|
end
|
|
19
|
+
|
|
20
|
+
def backtrace(*args)
|
|
21
|
+
[]
|
|
22
|
+
end
|
|
19
23
|
end
|
|
20
24
|
|
|
21
25
|
class Runner
|
|
@@ -68,7 +72,7 @@ module Rails
|
|
|
68
72
|
if corrections.empty?
|
|
69
73
|
raise exception
|
|
70
74
|
end
|
|
71
|
-
raise
|
|
75
|
+
raise(InvalidTestError.new(path, DidYouMean::Formatter.message_for(corrections)), cause: nil)
|
|
72
76
|
else
|
|
73
77
|
raise
|
|
74
78
|
end
|
|
@@ -13,29 +13,32 @@ if defined?(Prism)
|
|
|
13
13
|
# Parse a test file to extract the line ranges of all tests in both
|
|
14
14
|
# method-style (def test_foo) and declarative-style (test "foo" do)
|
|
15
15
|
module TestParser
|
|
16
|
+
@begins_to_ends = {}
|
|
16
17
|
# Helper to translate a method object into the path and line range where
|
|
17
18
|
# the method was defined.
|
|
18
19
|
def self.definition_for(method)
|
|
19
20
|
filepath, start_line = method.source_location
|
|
20
|
-
|
|
21
|
+
@begins_to_ends[filepath] ||= ranges(filepath)
|
|
22
|
+
return unless end_line = @begins_to_ends[filepath][start_line]
|
|
23
|
+
[filepath, start_line..end_line]
|
|
24
|
+
end
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
private
|
|
27
|
+
def self.ranges(filepath)
|
|
28
|
+
queue = [Prism.parse_file(filepath).value]
|
|
29
|
+
begins_to_ends = {}
|
|
30
|
+
while (node = queue.shift)
|
|
31
|
+
case node.type
|
|
32
|
+
when :def_node
|
|
33
|
+
begins_to_ends[node.location.start_line] = node.location.end_line
|
|
34
|
+
when :call_node
|
|
35
|
+
begins_to_ends[node.location.start_line] = node.location.end_line
|
|
27
36
|
end
|
|
28
|
-
when :call_node
|
|
29
|
-
if node.location.start_line == start_line
|
|
30
|
-
return [filepath, start_line..node.location.end_line]
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
queue.concat(node.compact_child_nodes)
|
|
39
|
+
end
|
|
40
|
+
begins_to_ends
|
|
35
41
|
end
|
|
36
|
-
|
|
37
|
-
nil
|
|
38
|
-
end
|
|
39
42
|
end
|
|
40
43
|
end
|
|
41
44
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: railties
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.2.
|
|
4
|
+
version: 7.2.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Heinemeier Hansson
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: activesupport
|
|
@@ -16,28 +15,42 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - '='
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 7.2.
|
|
18
|
+
version: 7.2.3
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
23
|
- - '='
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 7.2.
|
|
25
|
+
version: 7.2.3
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: actionpack
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
30
|
- - '='
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 7.2.
|
|
32
|
+
version: 7.2.3
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
37
|
- - '='
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 7.2.
|
|
39
|
+
version: 7.2.3
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: cgi
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
41
54
|
- !ruby/object:Gem::Dependency
|
|
42
55
|
name: rackup
|
|
43
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -114,20 +127,34 @@ dependencies:
|
|
|
114
127
|
- - "~>"
|
|
115
128
|
- !ruby/object:Gem::Version
|
|
116
129
|
version: '1.13'
|
|
130
|
+
- !ruby/object:Gem::Dependency
|
|
131
|
+
name: tsort
|
|
132
|
+
requirement: !ruby/object:Gem::Requirement
|
|
133
|
+
requirements:
|
|
134
|
+
- - ">="
|
|
135
|
+
- !ruby/object:Gem::Version
|
|
136
|
+
version: '0.2'
|
|
137
|
+
type: :runtime
|
|
138
|
+
prerelease: false
|
|
139
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
140
|
+
requirements:
|
|
141
|
+
- - ">="
|
|
142
|
+
- !ruby/object:Gem::Version
|
|
143
|
+
version: '0.2'
|
|
117
144
|
- !ruby/object:Gem::Dependency
|
|
118
145
|
name: actionview
|
|
119
146
|
requirement: !ruby/object:Gem::Requirement
|
|
120
147
|
requirements:
|
|
121
148
|
- - '='
|
|
122
149
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: 7.2.
|
|
150
|
+
version: 7.2.3
|
|
124
151
|
type: :development
|
|
125
152
|
prerelease: false
|
|
126
153
|
version_requirements: !ruby/object:Gem::Requirement
|
|
127
154
|
requirements:
|
|
128
155
|
- - '='
|
|
129
156
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: 7.2.
|
|
157
|
+
version: 7.2.3
|
|
131
158
|
description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
|
|
132
159
|
email: david@loudthinking.com
|
|
133
160
|
executables:
|
|
@@ -469,12 +496,11 @@ licenses:
|
|
|
469
496
|
- MIT
|
|
470
497
|
metadata:
|
|
471
498
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
|
472
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.2.
|
|
473
|
-
documentation_uri: https://api.rubyonrails.org/v7.2.
|
|
499
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.2.3/railties/CHANGELOG.md
|
|
500
|
+
documentation_uri: https://api.rubyonrails.org/v7.2.3/
|
|
474
501
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
|
475
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.2.
|
|
502
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.2.3/railties
|
|
476
503
|
rubygems_mfa_required: 'true'
|
|
477
|
-
post_install_message:
|
|
478
504
|
rdoc_options:
|
|
479
505
|
- "--exclude"
|
|
480
506
|
- "."
|
|
@@ -491,8 +517,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
491
517
|
- !ruby/object:Gem::Version
|
|
492
518
|
version: '0'
|
|
493
519
|
requirements: []
|
|
494
|
-
rubygems_version: 3.
|
|
495
|
-
signing_key:
|
|
520
|
+
rubygems_version: 3.6.9
|
|
496
521
|
specification_version: 4
|
|
497
522
|
summary: Tools for creating, working with, and running Rails applications.
|
|
498
523
|
test_files: []
|