diff options
Diffstat (limited to 'ruby_2_2/lib/rubygems/package/digest_io.rb')
-rw-r--r-- | ruby_2_2/lib/rubygems/package/digest_io.rb | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/ruby_2_2/lib/rubygems/package/digest_io.rb b/ruby_2_2/lib/rubygems/package/digest_io.rb deleted file mode 100644 index f8bde0f557..0000000000 --- a/ruby_2_2/lib/rubygems/package/digest_io.rb +++ /dev/null @@ -1,64 +0,0 @@ -## -# IO wrapper that creates digests of contents written to the IO it wraps. - -class Gem::Package::DigestIO - - ## - # Collected digests for wrapped writes. - # - # { - # 'SHA1' => #<OpenSSL::Digest: [...]>, - # 'SHA512' => #<OpenSSL::Digest: [...]>, - # } - - attr_reader :digests - - ## - # 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[...]" - - def self.wrap io, digests - digest_io = new io, digests - - yield digest_io - - return digests - end - - ## - # Creates a new DigestIO instance. Using ::wrap is recommended, see the - # ::wrap documentation for documentation of +io+ and +digests+. - - def initialize io, digests - @io = io - @digests = digests - end - - ## - # Writes +data+ to the underlying IO and updates the digests - - def write data - result = @io.write data - - @digests.each do |_, digest| - digest << data - end - - result - end - -end - |