Merge commit 'd9c21293aa6e105cedeff6b5e469af40a20909d9' into glitch-soc/merge-upstream
Conflicts: - `app/views/settings/preferences/other/show.html.haml`: Upstream moved some settings, where glitch-soc has an extra setting. Ported upstream changes, moving the same settings as them.
This commit is contained in:
@@ -19,6 +19,8 @@ class UserSettings
|
||||
setting :default_content_type, default: 'text/plain'
|
||||
setting :hide_followers_count, default: false
|
||||
|
||||
setting_inverse_alias :indexable, :noindex
|
||||
|
||||
namespace :web do
|
||||
setting :advanced_layout, default: false
|
||||
setting :trends, default: true
|
||||
@@ -62,31 +64,26 @@ class UserSettings
|
||||
end
|
||||
|
||||
def [](key)
|
||||
key = key.to_sym
|
||||
definition = self.class.definition_for(key)
|
||||
|
||||
raise KeyError, "Undefined setting: #{key}" unless self.class.definition_for?(key)
|
||||
raise KeyError, "Undefined setting: #{key}" if definition.nil?
|
||||
|
||||
if @original_hash.key?(key)
|
||||
@original_hash[key]
|
||||
else
|
||||
self.class.definition_for(key).default_value
|
||||
end
|
||||
definition.value_for(key, @original_hash[definition.key])
|
||||
end
|
||||
|
||||
def []=(key, value)
|
||||
key = key.to_sym
|
||||
definition = self.class.definition_for(key)
|
||||
|
||||
raise KeyError, "Undefined setting: #{key}" unless self.class.definition_for?(key)
|
||||
raise KeyError, "Undefined setting: #{key}" if definition.nil?
|
||||
|
||||
setting_definition = self.class.definition_for(key)
|
||||
typecast_value = setting_definition.type_cast(value)
|
||||
typecast_value = definition.type_cast(value)
|
||||
|
||||
raise ArgumentError, "Invalid value for setting #{key}: #{typecast_value}" if setting_definition.in.present? && setting_definition.in.exclude?(typecast_value)
|
||||
raise ArgumentError, "Invalid value for setting #{definition.key}: #{typecast_value}" if definition.in.present? && definition.in.exclude?(typecast_value)
|
||||
|
||||
if typecast_value.nil?
|
||||
@original_hash.delete(key)
|
||||
@original_hash.delete(definition.key)
|
||||
else
|
||||
@original_hash[key] = typecast_value
|
||||
@original_hash[definition.key] = definition.value_for(key, typecast_value)
|
||||
end
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user