module Sprockets::PathDigestUtils

Internal: Crossover of path and digest utilities functions.

Public Instance Methods

file_digest(path) click to toggle source

Internal: Compute digest for path.

path - String filename or directory path.

Returns String digest bytes or nil.

# File lib/sprockets/path_digest_utils.rb, line 32
def file_digest(path)
  if stat = self.stat(path)
    self.stat_digest(path, stat)
  end
end
files_digest(paths) click to toggle source

Internal: Compute digest for a set of paths.

paths - Array of filename or directory paths.

Returns String digest bytes.

# File lib/sprockets/path_digest_utils.rb, line 43
def files_digest(paths)
  self.digest(paths.map { |path| self.file_digest(path) })
end
stat_digest(path, stat) click to toggle source

Internal: Compute digest for file stat.

path - String filename stat - File::Stat

Returns String digest bytes.

# File lib/sprockets/path_digest_utils.rb, line 15
def stat_digest(path, stat)
  if stat.directory?
    # If its a directive, digest the list of filenames
    digest_class.digest(self.entries(path).join(','))
  elsif stat.file?
    # If its a file, digest the contents
    digest_class.file(path.to_s).digest
  else
    raise TypeError, "stat was not a directory or file: #{stat.ftype}"
  end
end