class Ridley::Chef::Digester

Borrowed and modified from: {github.com/opscode/chef/blob/11.4.0/lib/chef/digester.rb}

Public Class Methods

checksum_for_file(*args) click to toggle source
# File lib/ridley/chef/digester.rb, line 11
def checksum_for_file(*args)
  instance.checksum_for_file(*args)
end
instance() click to toggle source
# File lib/ridley/chef/digester.rb, line 7
def instance
  @instance ||= new
end
md5_checksum_for_file(*args) click to toggle source
# File lib/ridley/chef/digester.rb, line 15
def md5_checksum_for_file(*args)
  instance.generate_md5_checksum_for_file(*args)
end

Public Instance Methods

checksum_for_file(file) click to toggle source
# File lib/ridley/chef/digester.rb, line 24
def checksum_for_file(file)
  generate_checksum(file)
end
generate_checksum(file) click to toggle source
# File lib/ridley/chef/digester.rb, line 28
def generate_checksum(file)
  checksum_file(file, Digest::SHA256.new)
end
generate_md5_checksum(io) click to toggle source
# File lib/ridley/chef/digester.rb, line 36
def generate_md5_checksum(io)
  checksum_io(io, Digest::MD5.new)
end
generate_md5_checksum_for_file(file) click to toggle source
# File lib/ridley/chef/digester.rb, line 32
def generate_md5_checksum_for_file(file)
  checksum_file(file, Digest::MD5.new)
end
validate_checksum(*args) click to toggle source
# File lib/ridley/chef/digester.rb, line 20
def validate_checksum(*args)
  self.class.validate_checksum(*args)
end

Private Instance Methods

checksum_file(file, digest) click to toggle source
# File lib/ridley/chef/digester.rb, line 42
def checksum_file(file, digest)
  File.open(file, 'rb') do |f|
    checksum_io(f, digest)
  end
end
checksum_io(io, digest) click to toggle source
# File lib/ridley/chef/digester.rb, line 48
def checksum_io(io, digest)
  while chunk = io.read(1024 * 8)
    digest.update(chunk)
  end
  digest.hexdigest
end