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 34
def self.wrap io, digests
digest_io = new io, digests
yield digest_io
return digests
end