Quellcode durchsuchen

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
tags/1.3.0
Jean-Philippe Lang vor 12 Jahren
Ursprung
Commit
b170a40ed4
2 geänderte Dateien mit 21 neuen und 3 gelöschten Zeilen
  1. 8
    3
      app/models/setting.rb
  2. 13
    0
      test/unit/setting_test.rb

+ 8
- 3
app/models/setting.rb Datei anzeigen

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
@cached_cleared_on = Time.now
logger.info "Settings cache cleared." if logger
clear_cache
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

+ 13
- 0
test/unit/setting_test.rb Datei anzeigen

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

Laden…
Abbrechen
Speichern