discourse/lib/site_settings/local_process_provider.rb

63 lines
1.0 KiB
Ruby

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