Class: Gem::Package::DigestIO
| Relationships & Source Files | |
| Inherits: | Object | 
| Defined in: | lib/rubygems/package/digest_io.rb | 
Overview
IO wrapper that creates digests of contents written to the IO it wraps.
Class Method Summary
- 
    
      .new(io, digests)  ⇒ DigestIO 
    
    constructor
    Creates a new DigestIOinstance.
- 
    
      .wrap(io, digests) {|digest_io| ... } 
    
    Wraps ioand updates digest for each of the digest algorithms in the #digests Hash.
Instance Attribute Summary
- 
    
      #digests  
    
    readonly
    Collected digests for wrapped writes. 
Instance Method Summary
- 
    
      #write(data)  
    
    Writes datato the underlying IO and updates the digests.
Constructor Details
    .new(io, digests)  ⇒ DigestIO 
  
# File 'lib/rubygems/package/digest_io.rb', line 45
def initialize io, digests @io = io @digests = digests end
Class Method Details
.wrap(io, digests) {|digest_io| ... }
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 Attribute Details
#digests (readonly)
Collected digests for wrapped writes.
{
  'SHA1'   => #<OpenSSL::Digest: [...]>,
  'SHA512' => #<OpenSSL::Digest: [...]>,
}# File 'lib/rubygems/package/digest_io.rb', line 14
attr_reader :digests
Instance Method Details
#write(data)
Writes data to the underlying IO and updates the digests