From 861b52b6f3604e4f4566086fd831e5a54388f728 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Wed, 14 Nov 2018 18:07:04 +0800 Subject: [PATCH] Fix the build take 2. --- lib/site_settings/deprecated_settings.rb | 18 +++++++++++++++--- spec/models/site_setting_spec.rb | 15 +++++++++++---- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/lib/site_settings/deprecated_settings.rb b/lib/site_settings/deprecated_settings.rb index c0ff38f9afa..6d065dc19bc 100644 --- a/lib/site_settings/deprecated_settings.rb +++ b/lib/site_settings/deprecated_settings.rb @@ -16,7 +16,11 @@ module SiteSettings::DeprecatedSettings def setup_deprecated_methods DEPRECATED_SETTINGS.each do |old_setting, new_setting, override, version| - SiteSetting.singleton_class.public_send(:alias_method, :"_#{old_setting}", :"#{old_setting}") + unless override + SiteSetting.singleton_class.public_send( + :alias_method, :"_#{old_setting}", :"#{old_setting}" + ) + end define_singleton_method old_setting do |warn: true| if warn @@ -30,7 +34,11 @@ module SiteSettings::DeprecatedSettings self.public_send(override ? new_setting : "_#{old_setting}") end - SiteSetting.singleton_class.public_send(:alias_method, :"_#{old_setting}?", :"#{old_setting}?") + unless override + SiteSetting.singleton_class.public_send( + :alias_method, :"_#{old_setting}?", :"#{old_setting}?" + ) + end define_singleton_method "#{old_setting}?" do |warn: true| if warn @@ -44,7 +52,11 @@ module SiteSettings::DeprecatedSettings self.public_send("#{override ? new_setting : "_" + old_setting}?") end - SiteSetting.singleton_class.public_send(:alias_method, :"_#{old_setting}=", :"#{old_setting}=") + unless override + SiteSetting.singleton_class.public_send( + :alias_method, :"_#{old_setting}=", :"#{old_setting}=" + ) + end define_singleton_method "#{old_setting}=" do |val, warn: true| if warn diff --git a/spec/models/site_setting_spec.rb b/spec/models/site_setting_spec.rb index d8b134118ef..3942afe0bcc 100644 --- a/spec/models/site_setting_spec.rb +++ b/spec/models/site_setting_spec.rb @@ -163,9 +163,12 @@ describe SiteSetting do it 'should act as a proxy to the new methods' do begin - SiteSettings::DeprecatedSettings::DEPRECATED_SETTINGS.push(%w{ - use_https force_https 0.0.1 - }) + original_settings = SiteSettings::DeprecatedSettings::DEPRECATED_SETTINGS + SiteSettings::DeprecatedSettings::DEPRECATED_SETTINGS.clear + + SiteSettings::DeprecatedSettings::DEPRECATED_SETTINGS.push([ + 'use_https', 'force_https', true, '0.0.1' + ]) SiteSetting.setup_deprecated_methods @@ -183,7 +186,11 @@ describe SiteSetting do expect(SiteSetting.force_https).to eq(false) expect(SiteSetting.force_https?).to eq(false) ensure - SiteSettings::DeprecatedSettings::DEPRECATED_SETTINGS.pop + SiteSettings::DeprecatedSettings::DEPRECATED_SETTINGS.clear + + SiteSettings::DeprecatedSettings::DEPRECATED_SETTINGS.concat( + original_settings + ) end end end