class Gem::Package::TarWriter
def add_file_digest(name, mode, digest_algorithms) # :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