diff options
| author | Louise Crow <louise.crow@gmail.com> | 2014-09-01 10:34:08 +0100 | 
|---|---|---|
| committer | Louise Crow <louise.crow@gmail.com> | 2014-09-01 11:19:53 +0100 | 
| commit | baf8be95fff5c00688af6f0fae72392600ee9254 (patch) | |
| tree | af6b959b9266baa132c11537ba6b56be4a46b285 | |
| parent | 82565870dfa3b7da0a729723345097e230c4a163 (diff) | |
Return a list of all cache directories for the request
| -rw-r--r-- | app/controllers/admin_controller.rb | 3 | ||||
| -rw-r--r-- | app/models/info_request.rb | 14 | ||||
| -rw-r--r-- | spec/models/info_request_spec.rb | 9 | 
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 | 
