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