module Roda::RodaPlugins::HashPublic::ClassMethods
def hash_path_digest(file)
def hash_path_digest(file) opts = self.opts cache = opts[:hash_public_cache] mutex = opts[:hash_public_mutex] unless digest = mutex.synchronize{cache[file]} digest = Digest::SHA256.file(File.join(opts[:public_root], file)).base64digest digest.chomp!("=") digest.tr!("+/", "-_") if length = opts[:hash_public_length] digest = digest[0, length] end digest.freeze mutex.synchronize{cache[file] = digest} end digest end