Mercurial > hg > soundsoftware-site
diff app/models/setting.rb @ 909:cbb26bc654de redmine-1.3
Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author | Chris Cannam |
---|---|
date | Fri, 24 Feb 2012 19:09:32 +0000 |
parents | cbce1fd3b1b7 |
children | 433d4f72a19b |
line wrap: on
line diff
--- a/app/models/setting.rb Fri Feb 24 18:36:29 2012 +0000 +++ b/app/models/setting.rb Fri Feb 24 19:09:32 2012 +0000 @@ -75,7 +75,7 @@ TIS-620) cattr_accessor :available_settings - @@available_settings = YAML::load(File.open("#{RAILS_ROOT}/config/settings.yml")) + @@available_settings = YAML::load(File.open("#{Rails.root}/config/settings.yml")) Redmine::Plugin.all.each do |plugin| next unless plugin.settings @@available_settings["plugin_#{plugin.id}"] = {'default' => plugin.settings[:default], 'serialized' => true} @@ -151,11 +151,16 @@ def self.check_cache settings_updated_on = Setting.maximum(:updated_on) if settings_updated_on && @cached_cleared_on <= settings_updated_on - @cached_settings.clear - @cached_cleared_on = Time.now - logger.info "Settings cache cleared." if logger + clear_cache end end + + # Clears the settings cache + def self.clear_cache + @cached_settings.clear + @cached_cleared_on = Time.now + logger.info "Settings cache cleared." if logger + end private # Returns the Setting instance for the setting named name @@ -164,6 +169,10 @@ name = name.to_s raise "There's no setting named #{name}" unless @@available_settings.has_key?(name) setting = find_by_name(name) - setting ||= new(:name => name, :value => @@available_settings[name]['default']) if @@available_settings.has_key? name + unless setting + setting = new(:name => name) + setting.value = @@available_settings[name]['default'] + end + setting end end