DEV: introduce new API to look up dynamic site setting

This removes all uses of both `send` and `public_send` from consumers of
SiteSetting and instead introduces a `get` helper for dynamic lookup

This leads to much cleaner and safer code long term as we are always explicit
to test that a site setting is really there before sending an arbitrary
string to the class

It also removes a couple of risky stubs from the auth provider test
This commit is contained in:
Sam Saffron
2019-05-07 11:00:09 +10:00
parent 47995d2d89
commit 9be70a22cd
33 changed files with 99 additions and 73 deletions

View File

@ -12,7 +12,7 @@ class Typepad < Thor
backup_settings = {}
%w(email_domains_blacklist).each do |s|
backup_settings[s] = SiteSetting.send(s)
backup_settings[s] = SiteSetting.get(s)
end
user = User.where(username_lower: options[:post_as].downcase).first
@ -26,7 +26,6 @@ class Typepad < Thor
exit 1
end
inside_block = true
input = ""
entries = []
@ -103,7 +102,7 @@ class Typepad < Thor
ensure
RateLimiter.enable
backup_settings.each do |s, v|
SiteSetting.send("#{s}=", v)
SiteSetting.set(s, v)
end
end