Method: Gem::Package::DigestIO.wrap

Defined in:
lib/rubygems/package/digest_io.rb

.wrap(io, digests) {|digest_io| ... } ⇒ Object

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[...]"

Yields:

  • (digest_io)


34
35
36
37
38
39
40
# File 'lib/rubygems/package/digest_io.rb', line 34

def self.wrap(io, digests)
  digest_io = new io, digests

  yield digest_io

  digests
end