FIX: Make sure to observe shadowed settings when refreshing

This commit is contained in:
Robin Ward 2015-02-09 17:28:55 -05:00
parent 5d6f6c4887
commit 0da022a1ba
1 changed files with 13 additions and 11 deletions

View File

@ -196,18 +196,20 @@ module SiteSettingExtension
# add defaults, cause they are cached
new_hash = defaults.merge(new_hash)
changes,deletions = diff_hash(new_hash, old)
if deletions.length > 0 || changes.length > 0
changes.each do |name, val|
next if shadowed_settings.include?(name)
current[name] = val
end
deletions.each do |name,val|
next if shadowed_settings.include?(name)
current[name] = defaults[name]
end
# add shadowed
shadowed_settings.each do |ss|
new_hash[ss] = GlobalSetting.send(ss)
end
changes, deletions = diff_hash(new_hash, old)
changes.each do |name, val|
current[name] = val
end
deletions.each do |name, val|
current[name] = defaults[name]
end
clear_cache!
end
end