Attributes
Read
Collected digests for wrapped writes.
{
'SHA1' => #<OpenSSL::Digest: [...]>,
'SHA512' => #<OpenSSL::Digest: [...]>,
}
Class Methods
2.6
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rubygems/package/digest_io.rb, line 46
def initialize(io, digests)
@io = io
@digests = digests
end
2.6
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rubygems/package/digest_io.rb, line 34
def self.wrap(io, digests)
digest_io = new io, digests
yield digest_io
return digests
end
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
2.6
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rubygems/package/digest_io.rb, line 54
def write(data)
result = @io.write data
@digests.each do |_, digest|
digest << data
end
result
end
Writes data to the underlying IO and updates the digests