Adds a method to clear the settings cache.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7804 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
3511292a17
commit
b170a40ed4
|
@ -151,11 +151,16 @@ class Setting < ActiveRecord::Base
|
||||||
def self.check_cache
|
def self.check_cache
|
||||||
settings_updated_on = Setting.maximum(:updated_on)
|
settings_updated_on = Setting.maximum(:updated_on)
|
||||||
if settings_updated_on && @cached_cleared_on <= settings_updated_on
|
if settings_updated_on && @cached_cleared_on <= settings_updated_on
|
||||||
@cached_settings.clear
|
clear_cache
|
||||||
@cached_cleared_on = Time.now
|
|
||||||
logger.info "Settings cache cleared." if logger
|
|
||||||
end
|
end
|
||||||
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
|
private
|
||||||
# Returns the Setting instance for the setting named name
|
# Returns the Setting instance for the setting named name
|
||||||
|
|
|
@ -42,4 +42,17 @@ class SettingTest < ActiveSupport::TestCase
|
||||||
assert_equal ['issue_added', 'issue_updated', 'news_added'], Setting.notified_events
|
assert_equal ['issue_added', 'issue_updated', 'news_added'], Setting.notified_events
|
||||||
assert_equal ['issue_added', 'issue_updated', 'news_added'], Setting.find_by_name('notified_events').value
|
assert_equal ['issue_added', 'issue_updated', 'news_added'], Setting.find_by_name('notified_events').value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_setting_should_be_reloaded_after_clear_cache
|
||||||
|
Setting.app_title = "My title"
|
||||||
|
assert_equal "My title", Setting.app_title
|
||||||
|
|
||||||
|
s = Setting.find_by_name("app_title")
|
||||||
|
s.value = 'New title'
|
||||||
|
s.save!
|
||||||
|
assert_equal "My title", Setting.app_title
|
||||||
|
|
||||||
|
Setting.clear_cache
|
||||||
|
assert_equal "New title", Setting.app_title
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue