module Roda::RodaPlugins::HashPublic::ClassMethods

  1. lib/roda/plugins/hash_public.rb

Methods

Public Instance

  1. hash_path_digest

Public Instance methods

hash_path_digest(file)

The digest for the given file to use in hash_path.

[show source]
   # File lib/roda/plugins/hash_public.rb
82 def hash_path_digest(file)
83   opts = self.opts
84   cache = opts[:hash_public_cache]
85   mutex = opts[:hash_public_mutex]
86   unless digest = mutex.synchronize{cache[file]}
87     digest = Digest::SHA256.file(File.join(opts[:public_root], file)).base64digest
88     digest.chomp!("=")
89     digest.tr!("+/", "-_")
90     if length = opts[:hash_public_length]
91       digest = digest[0, length]
92     end
93     digest.freeze
94     mutex.synchronize{cache[file] = digest}
95   end
96   digest
97 end