class Gem::Package::DigestIO
IO wrapper that creates digests of contents written to the IO it wraps.
Attributes
              digests[R]
            
            Collected digests for wrapped writes.
{
  'SHA1'   => #<OpenSSL::Digest: [...]>,
  'SHA512' => #<OpenSSL::Digest: [...]>,
}
              Public Class Methods
                              new(io, digests)
                              click to toggle source
                            
                            
                          
                              wrap(io, digests) { |digest_io| ... }
                              click to toggle source
                            
                            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
Public Instance Methods
                              write(data)
                              click to toggle source
                            
                            Writes data to the underlying IO and updates the digests
# File rubygems/package/digest_io.rb, line 53 def write(data) result = @io.write data @digests.each do |_, digest| digest << data end result end