aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/admin_controller.rb3
-rw-r--r--app/models/info_request.rb14
-rw-r--r--spec/models/info_request_spec.rb9
3 files changed, 18 insertions, 8 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index 8b606ea85..3bf40b8f9 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_controller.rb
@@ -25,8 +25,7 @@ class AdminController < ApplicationController
def expire_for_request(info_request)
# Clear out cached entries, by removing files from disk (the built in
# Rails fragment cache made doing this and other things too hard)
- cache_subpath = foi_fragment_cache_all_for_request(info_request)
- FileUtils.rm_rf(cache_subpath)
+ info_request.foi_fragment_cache_directories.each{ |dir| FileUtils.rm_rf(dir) }
# Remove any download zips
FileUtils.rm_rf(info_request.download_zip_dir)
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 1d82a5714..d0052603a 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -1048,11 +1048,17 @@ public
File.join(Rails.root, "cache", "zips", "#{Rails.env}")
end
- def foi_fragment_cache_directory
+ def foi_fragment_cache_directories
# return stub path so admin can expire it
- path = "views/request/#{request_dirs}"
- foi_cache_path = File.expand_path(File.join(Rails.root, 'cache'))
- return File.join(foi_cache_path, path)
+ directories = []
+ path = File.join("request", request_dirs)
+ foi_cache_path = File.expand_path(File.join(Rails.root, 'cache', 'views'))
+ directories << File.join(foi_cache_path, path)
+ I18n.available_locales.each do |locale|
+ directories << File.join(foi_cache_path, locale.to_s, path)
+ end
+
+ directories
end
def request_dirs
diff --git a/spec/models/info_request_spec.rb b/spec/models/info_request_spec.rb
index 3df99dd60..afb8e0949 100644
--- a/spec/models/info_request_spec.rb
+++ b/spec/models/info_request_spec.rb
@@ -147,14 +147,19 @@ describe InfoRequest do
end
- describe 'when managing the cache path' do
+ describe 'when managing the cache directories' do
before do
@info_request = info_requests(:fancy_dog_request)
end
it 'should return the default locale cache path without locale parts' do
default_locale_path = File.join(Rails.root, 'cache', 'views', 'request', '101', '101')
- @info_request.foi_fragment_cache_directory.include?(default_locale_path).should == true
+ @info_request.foi_fragment_cache_directories.include?(default_locale_path).should == true
+ end
+
+ it 'should return the cache path for any other locales' do
+ other_locale_path = File.join(Rails.root, 'cache', 'views', 'es', 'request', '101', '101')
+ @info_request.foi_fragment_cache_directories.include?(other_locale_path).should == true
end
end