diff --git a/lib/site_setting_extension.rb b/lib/site_setting_extension.rb index 2dc91d2d81..d365fd3a69 100644 --- a/lib/site_setting_extension.rb +++ b/lib/site_setting_extension.rb @@ -231,30 +231,27 @@ module SiteSettingExtension # trivial multi db support, we can optimize this later current[name] = current_value + clean_name = name.to_s.sub("?", "") - setter = ("#{name}=").sub("?","") - - eval "define_singleton_method :#{name} do + eval "define_singleton_method :#{clean_name} do c = @@containers[provider.current_site] c = c[name] if c c end - define_singleton_method :#{setter} do |val| + define_singleton_method :#{clean_name}? do + c = @@containers[provider.current_site] + c = c[name] if c + c + end + + define_singleton_method :#{clean_name}= do |val| add_override!(:#{name}, val) refresh! end " end - def method_missing(method, *args, &block) - as_question = method.to_s.gsub(/\?$/, '') - if respond_to?(as_question) - return send(as_question, *args, &block) - end - super(method, *args, &block) - end - def enum_class(name) enums[name] end