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
DigestIO
instance. -
.wrap(io, digests) {|digest_io| ... }
Wraps
io
and 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
data
to the underlying IO and updates the digests.
Constructor Details
.new(io, digests) ⇒ DigestIO
# File 'lib/rubygems/package/digest_io.rb', line 46
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 15
attr_reader :digests
Instance Method Details
#write(data)
Writes data
to the underlying IO and updates the digests