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