From fa8133aeb99be3d23cbf6c1164d38db615630195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Barri=C3=A9?= Date: Mon, 12 Aug 2024 14:42:50 +0200 Subject: [PATCH] Don't add bin/rubocop if rubocop is not in Gemfile --- railties/lib/rails/commands/app/update_command.rb | 7 ++++--- railties/test/generators/app_generator_test.rb | 10 ++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/railties/lib/rails/commands/app/update_command.rb b/railties/lib/rails/commands/app/update_command.rb index fab7db2f1c9ba..daa178dffd719 100644 --- a/railties/lib/rails/commands/app/update_command.rb +++ b/railties/lib/rails/commands/app/update_command.rb @@ -69,7 +69,8 @@ def generator_options skip_action_mailbox: !defined?(ActionMailbox::Engine), skip_action_text: !defined?(ActionText::Engine), skip_action_cable: !defined?(ActionCable::Engine), - skip_brakeman: skip_brakeman?, + skip_brakeman: skip_gem?("brakeman"), + skip_rubocop: skip_gem?("rubocop"), skip_test: !defined?(Rails::TestUnitRailtie), skip_system_test: Rails.application.config.generators.system_tests.nil?, asset_pipeline: asset_pipeline, @@ -89,8 +90,8 @@ def asset_pipeline end end - def skip_brakeman? - require "brakeman" + def skip_gem?(gem_name) + require gem_name false rescue LoadError true diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index ddd559f382b98..618ace8de5296 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -296,6 +296,16 @@ def test_app_update_preserves_skip_brakeman end end + def test_app_update_preserves_skip_rubocop + run_generator [ destination_root, "--skip-rubocop" ] + + FileUtils.cd(destination_root) do + assert_no_changes -> { File.exist?("bin/rubocop") } do + run_app_update + end + end + end + def test_app_update_preserves_skip_test run_generator [ destination_root, "--skip-test" ]