summaryrefslogtreecommitdiff
path: root/ruby_2_2/lib/rubygems/package/digest_io.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_2_2/lib/rubygems/package/digest_io.rb')
-rw-r--r--ruby_2_2/lib/rubygems/package/digest_io.rb64
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
-