class Gem::Package::DigestIO
IO Wrapper, der Digests von Inhalten erstellt, die in das von ihm umschlossene IO geschrieben werden.
Attribute
Gesammelte Digests für umschlossene Schreibvorgänge.
{
'SHA1' => #<OpenSSL::Digest: [...]>,
'SHA512' => #<OpenSSL::Digest: [...]>,
}
Öffentliche Klassenmethoden
Source
# File lib/rubygems/package/digest_io.rb, line 46 def initialize(io, digests) @io = io @digests = digests end
Source
# File lib/rubygems/package/digest_io.rb, line 34 def self.wrap(io, digests) digest_io = new io, digests yield digest_io digests end
Umschließt io und aktualisiert den Digest für jeden der Digest-Algorithmen in der digests Hash. Gibt die Digests-Hash zurück. Beispiel
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[...]"
Öffentliche Instanzmethoden
Source
# File lib/rubygems/package/digest_io.rb, line 54 def write(data) result = @io.write data @digests.each do |_, digest| digest << data end result end
Schreibt data in das zugrunde liegende IO und aktualisiert die Digests.