Mercurial > hg > soundsoftware-site
comparison 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 |
comparison
equal
deleted
inserted
replaced
908:c6c2cbd0afee | 909:cbb26bc654de |
---|---|
73 Big5 | 73 Big5 |
74 Big5-HKSCS | 74 Big5-HKSCS |
75 TIS-620) | 75 TIS-620) |
76 | 76 |
77 cattr_accessor :available_settings | 77 cattr_accessor :available_settings |
78 @@available_settings = YAML::load(File.open("#{RAILS_ROOT}/config/settings.yml")) | 78 @@available_settings = YAML::load(File.open("#{Rails.root}/config/settings.yml")) |
79 Redmine::Plugin.all.each do |plugin| | 79 Redmine::Plugin.all.each do |plugin| |
80 next unless plugin.settings | 80 next unless plugin.settings |
81 @@available_settings["plugin_#{plugin.id}"] = {'default' => plugin.settings[:default], 'serialized' => true} | 81 @@available_settings["plugin_#{plugin.id}"] = {'default' => plugin.settings[:default], 'serialized' => true} |
82 end | 82 end |
83 | 83 |
149 # and clears the cache hash if it's the case | 149 # and clears the cache hash if it's the case |
150 # Called once per request | 150 # Called once per request |
151 def self.check_cache | 151 def self.check_cache |
152 settings_updated_on = Setting.maximum(:updated_on) | 152 settings_updated_on = Setting.maximum(:updated_on) |
153 if settings_updated_on && @cached_cleared_on <= settings_updated_on | 153 if settings_updated_on && @cached_cleared_on <= settings_updated_on |
154 @cached_settings.clear | 154 clear_cache |
155 @cached_cleared_on = Time.now | |
156 logger.info "Settings cache cleared." if logger | |
157 end | 155 end |
156 end | |
157 | |
158 # Clears the settings cache | |
159 def self.clear_cache | |
160 @cached_settings.clear | |
161 @cached_cleared_on = Time.now | |
162 logger.info "Settings cache cleared." if logger | |
158 end | 163 end |
159 | 164 |
160 private | 165 private |
161 # Returns the Setting instance for the setting named name | 166 # Returns the Setting instance for the setting named name |
162 # (record found in database or new record with default value) | 167 # (record found in database or new record with default value) |
163 def self.find_or_default(name) | 168 def self.find_or_default(name) |
164 name = name.to_s | 169 name = name.to_s |
165 raise "There's no setting named #{name}" unless @@available_settings.has_key?(name) | 170 raise "There's no setting named #{name}" unless @@available_settings.has_key?(name) |
166 setting = find_by_name(name) | 171 setting = find_by_name(name) |
167 setting ||= new(:name => name, :value => @@available_settings[name]['default']) if @@available_settings.has_key? name | 172 unless setting |
173 setting = new(:name => name) | |
174 setting.value = @@available_settings[name]['default'] | |
175 end | |
176 setting | |
168 end | 177 end |
169 end | 178 end |