IO wrapper that creates digests of contents written to the IO it wraps.
Wraps io and updates digest for each of the digest algorithms in the digests Hash. Returns the digests hash. Example:
io = StringIO.new digests = { 'SHA1' => OpenSSL::Digest.new('SHA1'), 'SHA512' => OpenSSL::Digest.new('SHA512'), } Gem::Package::DigestIO.wrap io, digests do |digest_io| digest_io.write "hello" end digests['SHA1'].hexdigest #=> "aaf4c61d[...]" digests['SHA512'].hexdigest #=> "9b71d224[...]"
# File rubygems/package/digest_io.rb, line 33
def self.wrap(io, digests)
digest_io = new io, digests
yield digest_io
return digests
end