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 lib/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 lib/rubygems/package/digest_io.rb, line 53 def write data result = @io.write data @digests.each do |_, digest| digest << data end result end