IO wrapper that creates digests of contents written to the IO it wraps.

Attributes
Read

Collected digests for wrapped writes.

{
  'SHA1'   => #<OpenSSL::Digest: [...]>,
  'SHA512' => #<OpenSSL::Digest: [...]>,
}
Class Methods

Creates a new DigestIO instance. Using ::wrap is recommended, see the ::wrap documentation for documentation of io and digests.

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

Writes data to the underlying IO and updates the digests