Add ActiveModel.deprecator

This commit adds `ActiveModel.deprecator`, and adds it to
`Rails.application.deprecators` so that it can be configured via
settings such as `config.active_support.report_deprecations`.
This commit is contained in:
Jonathan Hefner 2022-11-01 15:28:32 -05:00
parent b2bc006815
commit 74794858c9
5 changed files with 14 additions and 1 deletions

View File

@ -26,6 +26,7 @@
require "active_support"
require "active_support/rails"
require "active_model/version"
require "active_model/deprecator"
module ActiveModel
extend ActiveSupport::Autoload

View File

@ -0,0 +1,7 @@
# frozen_string_literal: true
module ActiveModel
def self.deprecator # :nodoc:
@deprecator ||= ActiveSupport::Deprecation.new
end
end

View File

@ -9,6 +9,10 @@ module ActiveModel
config.active_model = ActiveSupport::OrderedOptions.new
initializer "active_model.deprecator" do |app|
app.deprecators[:active_model] = ActiveModel.deprecator
end
initializer "active_model.secure_password" do
ActiveModel::SecurePassword.min_cost = Rails.env.test?
end

View File

@ -4,7 +4,7 @@ require "active_support/testing/strict_warnings"
require "active_model"
# Show backtraces for deprecated behavior for quicker cleanup.
ActiveSupport::Deprecation.debug = true
ActiveModel.deprecator.debug = true
# Disable available locale checks to avoid warnings running the test suite.
I18n.enforce_available_locales = false

View File

@ -3898,6 +3898,7 @@ module ApplicationTests
assert_equal ActionText.deprecator, Rails.application.deprecators[:action_text]
assert_equal ActionView.deprecator, Rails.application.deprecators[:action_view]
assert_equal ActiveJob.deprecator, Rails.application.deprecators[:active_job]
assert_equal ActiveModel.deprecator, Rails.application.deprecators[:active_model]
assert_equal ActiveRecord.deprecator, Rails.application.deprecators[:active_record]
assert_equal ActiveStorage.deprecator, Rails.application.deprecators[:active_storage]
assert_equal ActiveSupport.deprecator, Rails.application.deprecators[:active_support]