From b8e5208162576d3c8529fce525a183667b4e9a62 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Wed, 20 Nov 2019 16:39:47 +0000 Subject: [PATCH] DEV: Add convenience method to check info about a site setting This is only defined in a console environment. For example: ``` [1] pry(main)> SiteSetting.info(:title) => {:resolved_value=>"Globally Overridden Title", :default_value=>"Discourse", :global_override=>"Globally Overridden Title", :database_value=>"Test Discourse", :refresh?=>false, :client?=>true, :secret?=>false} ``` --- lib/site_setting_extension.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/site_setting_extension.rb b/lib/site_setting_extension.rb index a60c9dc7da6..c19eb8814e7 100644 --- a/lib/site_setting_extension.rb +++ b/lib/site_setting_extension.rb @@ -413,6 +413,22 @@ module SiteSettingExtension end end + if defined?(Rails::Console) + # Convenience method for debugging site setting issues + # Returns a hash with information about a specific setting + def info(name) + { + resolved_value: get(name), + default_value: defaults[name], + global_override: GlobalSetting.respond_to?(name) ? GlobalSetting.public_send(name) : nil, + database_value: provider.find(name)&.value, + refresh?: refresh_settings.include?(name), + client?: client_settings.include?(name), + secret?: secret_settings.include?(name), + } + end + end + protected def clear_cache!