module SiteSettings; end class SiteSettings::LocalProcessProvider attr_accessor :current_site class Setting attr_accessor :name, :data_type, :value def value_changed? false end def saved_change_to_value? true end def initialize(name, data_type) self.name = name self.data_type = data_type end end def settings @settings[current_site] ||= {} end def initialize @settings = {} self.current_site = "test" end def all settings.values end def find(name) settings[name] end def save(name, value, data_type) # NOTE: convert to string to simulate the conversion that is happening # when using DbProvider setting = settings[name] if setting.blank? setting = Setting.new(name, data_type) settings[name] = setting end setting.value = value.to_s DiscourseEvent.trigger(:site_setting_saved, setting) setting end def destroy(name) settings.delete(name) end def clear @settings[current_site] = {} end end