class Skippable::FileDigest

Attributes

path[R]

Public Class Methods

new(path:) click to toggle source
# File lib/skippable/file_digest.rb, line 6
def initialize(path:)
  @path = path
end

Public Instance Methods

changed?() click to toggle source
# File lib/skippable/file_digest.rb, line 10
def changed?
  current_digest != cached_digest
end
update_cached_digest() click to toggle source
# File lib/skippable/file_digest.rb, line 14
def update_cached_digest
  unless File.directory?(File.dirname(cached_digest_path))
    FileUtils.mkdir_p(File.dirname(cached_digest_path))
  end

  File.write(cached_digest_path, current_digest)
end

Private Instance Methods

cached_digest() click to toggle source
# File lib/skippable/file_digest.rb, line 30
def cached_digest
  if File.exist?(cached_digest_path)
    File.read(cached_digest_path)
  end
end
cached_digest_path() click to toggle source
# File lib/skippable/file_digest.rb, line 36
def cached_digest_path
  File.join("tmp", "skippable", path)
end
current_digest() click to toggle source
# File lib/skippable/file_digest.rb, line 26
def current_digest
  @current_digest ||= Digest::SHA256.file(path).hexdigest
end