diff --git a/lib/common/cache_file_store.rb b/lib/common/cache_file_store.rb index a3121304..c891aefa 100644 --- a/lib/common/cache_file_store.rb +++ b/lib/common/cache_file_store.rb @@ -12,14 +12,14 @@ require 'yaml' require 'fileutils' class CacheFileStore - attr_reader :storage_path, :serializer + attr_reader :storage_path, :cache_dir, :serializer # The serializer must have the 2 methods .load and .dump # (Marshal and YAML have them) # YAML is Human Readable, contrary to Marshal which store in a binary format # Marshal does not need any "require" def initialize(storage_path, serializer = Marshal) - @storage_dir = File.expand_path(storage_path) + @cache_dir = File.expand_path(storage_path) @storage_path = File.expand_path(File.join(storage_path, storage_dir)) @serializer = serializer @@ -32,7 +32,7 @@ class CacheFileStore def clean # clean old directories - Dir[File.join(@storage_dir, '*')].each do |f| + Dir[File.join(@cache_dir, '*')].each do |f| if File.directory?(f) # delete directory if create time is older than 4 hours FileUtils.rm_rf(f) if File.mtime(f) < (Time.now - (60*240)) diff --git a/spec/lib/common/cache_file_store_spec.rb b/spec/lib/common/cache_file_store_spec.rb index 1fa3523a..d9233512 100644 --- a/spec/lib/common/cache_file_store_spec.rb +++ b/spec/lib/common/cache_file_store_spec.rb @@ -30,14 +30,15 @@ describe CacheFileStore do describe '#clean' do it "should remove all files from the cache dir (#{@cache_dir}" do - # let's create some files into the directory first - (0..5).each do |i| - File.new(@cache.storage_path + "/file_#{i}.txt", File::CREAT) - end - - expect(count_files_in_dir(@cache.storage_path, 'file_*.txt')).to eq 6 + # clean is executed by other tests before + before = count_files_in_dir(@cache.cache_dir) + test_dir = File.expand_path("#{@cache.cache_dir}/test") + Dir.mkdir test_dir + #change the modification date + %x[ touch -t 200701310846.26 #{test_dir} ] + expect(count_files_in_dir(@cache.cache_dir)).to eq (before + 1) @cache.clean - expect(count_files_in_dir(@cache.storage_path)).to eq 0 + expect(count_files_in_dir(@cache.cache_dir)).to eq before end end