End of Life Ruby 3.2 has reached end of life and gets no more fixes. 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.2.0/lib/rubygems/package/tar_writer.rb, line 98
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