From b3a2bb326ccd6f7235173c203490a6f6bc843e46 Mon Sep 17 00:00:00 2001 From: Jonathan Hefner Date: Fri, 28 Oct 2022 11:00:24 -0500 Subject: [PATCH] Add ActionMailer.deprecator This commit adds `ActionMailer.deprecator` and replaces all usages of `ActiveSupport::Deprecation.warn` in `actionmailer/lib` with `ActionMailer.deprecator`. Additionally, this commit adds `ActionMailer.deprecator` to `Rails.application.deprecators` so that it can be configured via settings such as `config.active_support.report_deprecations`. --- actionmailer/lib/action_mailer.rb | 1 + actionmailer/lib/action_mailer/deprecator.rb | 7 +++++++ actionmailer/lib/action_mailer/preview.rb | 6 +++--- actionmailer/lib/action_mailer/railtie.rb | 4 ++++ actionmailer/test/abstract_unit.rb | 2 +- railties/test/application/configuration_test.rb | 1 + railties/test/application/mailer_previews_test.rb | 4 ++-- 7 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 actionmailer/lib/action_mailer/deprecator.rb diff --git a/actionmailer/lib/action_mailer.rb b/actionmailer/lib/action_mailer.rb index 85437e7ca6..17afa8a183 100644 --- a/actionmailer/lib/action_mailer.rb +++ b/actionmailer/lib/action_mailer.rb @@ -25,6 +25,7 @@ require "abstract_controller" require "action_mailer/version" +require "action_mailer/deprecator" # Common Active Support usage in Action Mailer require "active_support" diff --git a/actionmailer/lib/action_mailer/deprecator.rb b/actionmailer/lib/action_mailer/deprecator.rb new file mode 100644 index 0000000000..26fde3a857 --- /dev/null +++ b/actionmailer/lib/action_mailer/deprecator.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +module ActionMailer + def self.deprecator # :nodoc: + @deprecator ||= ActiveSupport::Deprecation.new + end +end diff --git a/actionmailer/lib/action_mailer/preview.rb b/actionmailer/lib/action_mailer/preview.rb index 75ade9bbea..8806ca9606 100644 --- a/actionmailer/lib/action_mailer/preview.rb +++ b/actionmailer/lib/action_mailer/preview.rb @@ -26,7 +26,7 @@ module ActionMailer end def preview_path - ActiveSupport::Deprecation.warn(<<-MSG.squish) + ActionMailer.deprecator.warn(<<-MSG.squish) Using preview_path option is deprecated and will be removed in Rails 7.2. Please use preview_paths instead. MSG @@ -35,7 +35,7 @@ module ActionMailer module ClassMethods def preview_path=(value) - ActiveSupport::Deprecation.warn(<<-MSG.squish) + ActionMailer.deprecator.warn(<<-MSG.squish) Using preview_path= option is deprecated and will be removed in Rails 7.2. Please use preview_paths= instead. MSG @@ -43,7 +43,7 @@ module ActionMailer end def preview_path - ActiveSupport::Deprecation.warn(<<-MSG.squish) + ActionMailer.deprecator.warn(<<-MSG.squish) Using preview_path option is deprecated and will be removed in Rails 7.2. Please use preview_paths instead. MSG diff --git a/actionmailer/lib/action_mailer/railtie.rb b/actionmailer/lib/action_mailer/railtie.rb index dcf4129dc9..846b9cf9c6 100644 --- a/actionmailer/lib/action_mailer/railtie.rb +++ b/actionmailer/lib/action_mailer/railtie.rb @@ -11,6 +11,10 @@ module ActionMailer config.action_mailer.preview_paths = [] config.eager_load_namespaces << ActionMailer + initializer "action_mailer.deprecator" do |app| + app.deprecators[:action_mailer] = ActionMailer.deprecator + end + initializer "action_mailer.logger" do ActiveSupport.on_load(:action_mailer) { self.logger ||= Rails.logger } end diff --git a/actionmailer/test/abstract_unit.rb b/actionmailer/test/abstract_unit.rb index 5abed4b24f..bdf18fb5f3 100644 --- a/actionmailer/test/abstract_unit.rb +++ b/actionmailer/test/abstract_unit.rb @@ -26,7 +26,7 @@ require "action_view" ActionMailer::Base.include(ActionView::Layouts) # Show backtraces for deprecated behavior for quicker cleanup. -ActiveSupport::Deprecation.debug = true +ActionMailer.deprecator.debug = true # Disable available locale checks to avoid warnings running the test suite. I18n.enforce_available_locales = false diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb index 215a28dbd5..635d742687 100644 --- a/railties/test/application/configuration_test.rb +++ b/railties/test/application/configuration_test.rb @@ -3892,6 +3892,7 @@ module ApplicationTests assert_equal AbstractController.deprecator, Rails.application.deprecators[:action_controller] assert_equal ActionController.deprecator, Rails.application.deprecators[:action_controller] assert_equal ActionDispatch.deprecator, Rails.application.deprecators[:action_dispatch] + assert_equal ActionMailer.deprecator, Rails.application.deprecators[:action_mailer] assert_equal ActiveRecord.deprecator, Rails.application.deprecators[:active_record] assert_equal ActiveSupport.deprecator, Rails.application.deprecators[:active_support] end diff --git a/railties/test/application/mailer_previews_test.rb b/railties/test/application/mailer_previews_test.rb index ebfb342e07..9b17dd4351 100644 --- a/railties/test/application/mailer_previews_test.rb +++ b/railties/test/application/mailer_previews_test.rb @@ -262,7 +262,7 @@ module ApplicationTests test "mailer preview_path option is deprecated" do prev = ActionMailer::Base.preview_paths ActionMailer::Base.preview_paths = ["#{app_path}/lib/mailer/previews"] - assert_deprecated do + assert_deprecated(ActionMailer.deprecator) do assert_equal "#{app_path}/lib/mailer/previews", ActionMailer::Base.preview_path end ensure @@ -271,7 +271,7 @@ module ApplicationTests test "mailer preview_path= option is deprecated" do prev = ActionMailer::Base.preview_paths - assert_deprecated do + assert_deprecated(ActionMailer.deprecator) do ActionMailer::Base.preview_path = "#{app_path}/lib/mailer/previews" end assert_equal ["#{app_path}/lib/mailer/previews"], ActionMailer::Base.preview_paths