module Roda::RodaPlugins::HashPublic::ClassMethods

def hash_path_digest(file)

The digest for the given file to use in hash_path.
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