Create unique cache dir to prevent race conditions. Issue #344.

This commit is contained in:
ethicalhack3r
2013-11-15 00:24:20 +01:00
parent 766409e581
commit c98177ea20
2 changed files with 26 additions and 7 deletions

View File

@@ -18,8 +18,8 @@ class CacheFileStore
# 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_path = File.expand_path(storage_path)
@serializer = serializer
@storage_path = File.expand_path(storage_path + '/' + storage_dir)
@serializer = serializer
# File.directory? for ruby <= 1.9 otherwise,
# it makes more sense to do Dir.exist? :/
@@ -58,4 +58,11 @@ class CacheFileStore
File::join(@storage_path, key)
end
def storage_dir
time = Time.now
random = (0...8).map { (65 + rand(26)).chr }.join
Digest::MD5.hexdigest("#{time}#{random}")
end
end