diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb index ea7eb40ad6d..687f000f0a6 100644 --- a/app/models/site_setting.rb +++ b/app/models/site_setting.rb @@ -19,7 +19,6 @@ class SiteSetting < ActiveRecord::Base end load_settings(File.join(Rails.root, 'config', 'site_settings.yml')) - setup_deprecated_methods unless Rails.env.test? && ENV['LOAD_PLUGINS'] != "1" Dir[File.join(Rails.root, "plugins", "*", "config", "settings.yml")].each do |file| @@ -27,6 +26,7 @@ class SiteSetting < ActiveRecord::Base end end + setup_deprecated_methods client_settings << :available_locales def self.available_locales diff --git a/lib/site_settings/deprecated_settings.rb b/lib/site_settings/deprecated_settings.rb index 13fd118bffa..c0ff38f9afa 100644 --- a/lib/site_settings/deprecated_settings.rb +++ b/lib/site_settings/deprecated_settings.rb @@ -2,20 +2,22 @@ module SiteSettings; end module SiteSettings::DeprecatedSettings DEPRECATED_SETTINGS = [ - %w{logo_url logo 2.4}, - %w{logo_small_url logo_small 2.4}, - %w{digest_logo_url digest_logo 2.4}, - %w{mobile_logo_url mobile_logo 2.4}, - %w{large_icon_url large_icon 2.4}, - %w{favicon_url favicon 2.4}, - %w{apple_touch_icon_url apple_touch_icon 2.4}, - %w{default_opengraph_image_url opengraph_image 2.4}, - %w{twitter_summary_large_image_url twitter_summary_large_image 2.4}, - %w{push_notifications_icon_url push_notifications_icon 2.4} + ['logo_url', 'logo', false, '2.4'], + ['logo_small_url', 'logo_small', false, '2.4'], + ['digest_logo_url', 'digest_logo', false, '2.4'], + ['mobile_logo_url', 'mobile_logo', false, '2.4'], + ['large_icon_url', 'large_icon', false, '2.4'], + ['favicon_url', 'favicon', false, '2.4'], + ['apple_touch_icon_url', 'apple_touch_icon', false, '2.4'], + ['default_opengraph_image_url', 'opengraph_image', false, '2.4'], + ['twitter_summary_large_image_url', 'twitter_summary_large_image', false, '2.4'], + ['push_notifications_icon_url', 'push_notifications_icon', false, '2.4'] ] def setup_deprecated_methods - DEPRECATED_SETTINGS.each do |old_setting, new_setting, version| + DEPRECATED_SETTINGS.each do |old_setting, new_setting, override, version| + SiteSetting.singleton_class.public_send(:alias_method, :"_#{old_setting}", :"#{old_setting}") + define_singleton_method old_setting do |warn: true| if warn logger.warn( @@ -25,9 +27,11 @@ module SiteSettings::DeprecatedSettings ) end - self.public_send new_setting + self.public_send(override ? new_setting : "_#{old_setting}") end + SiteSetting.singleton_class.public_send(:alias_method, :"_#{old_setting}?", :"#{old_setting}?") + define_singleton_method "#{old_setting}?" do |warn: true| if warn logger.warn( @@ -37,9 +41,11 @@ module SiteSettings::DeprecatedSettings ) end - self.public_send "#{new_setting}?" + self.public_send("#{override ? new_setting : "_" + old_setting}?") end + SiteSetting.singleton_class.public_send(:alias_method, :"_#{old_setting}=", :"#{old_setting}=") + define_singleton_method "#{old_setting}=" do |val, warn: true| if warn logger.warn( @@ -49,7 +55,7 @@ module SiteSettings::DeprecatedSettings ) end - self.public_send "#{new_setting}=", val + self.public_send("#{override ? new_setting : "_" + old_setting}=", val) end end end