Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
Gem::Package::TarWriter#add_file
add_file(name, mode) { |io| ... }
lib/rubygems/package/tar_writer.rb
View on GitHub ↗
# File tmp/rubies/ruby-3.4.1/lib/rubygems/package/tar_writer.rb, line 101
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 "\0" * remainder
final_pos = @io.pos
@io.pos = init_pos
header = Gem::Package::TarHeader.new name: name, mode: mode,
size: size, prefix: prefix,
mtime: Gem.source_date_epoch
@io.write header
@io.pos = final_pos
self
end
Adds file name with permissions mode, and yields an IO for writing the file to