class Gem::Package::TarWriter

def add_file_digest(name, mode, digest_algorithms) # :yields: io

:yields: io
def add_file_digest(name, mode, digest_algorithms) # :yields: io
  digests = digest_algorithms.map do |digest_algorithm|
    digest = digest_algorithm.new
    digest_name =
      if digest.respond_to? :name
        digest.name
      else
        digest_algorithm.class.name[/::([^:]+)\z/, 1]
      end
    [digest_name, digest]
  end
  digests = Hash[*digests.flatten]
  add_file name, mode do |io|
    Gem::Package::DigestIO.wrap io, digests do |digest_io|
      yield digest_io
    end
  end
  digests
end