add_file(name, mode)
public
Adds file name with permissions mode, and yields an IO for writing the file to
# File lib/rubygems/package/tar_writer.rb, line 105
def add_file(name, mode) # :yields: io
check_closed
name, prefix = split_name name
init_pos = @io.pos
@io.write Gem::Package::TarHeader::EMPTY_HEADER # placeholder for the header
yield RestrictedStream.new(@io) if block_given?
size = @io.pos - init_pos - 512
remainder = (512 - (size % 512)) % 512
@io.write "\00"" * remainder
final_pos = @io.pos
@io.pos = init_pos
header = Gem::Package::TarHeader.new :name => name, :mode => mode,
:size => size, :prefix => prefix,
:mtime => ENV["SOURCE_DATE_EPOCH"] ? Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc : Time.now
@io.write header
@io.pos = final_pos
self
end