Allows writing of tar files
Namespace
- CLASS Gem::Package::TarWriter::BoundedStream
- CLASS Gem::Package::TarWriter::FileOverflow
- CLASS Gem::Package::TarWriter::RestrictedStream
Methods
- A
- C
- F
- M
- N
Class Public methods
Instance Public methods
add_file(name, mode)
Link
Adds file name
with permissions mode
, and yields
an IO for writing the file to
# File ../ruby/lib/rubygems/package/tar_writer.rb, line 102 def add_file(name, mode) # :yields: io check_closed raise Gem::Package::NonSeekableIO unless @io.respond_to? :pos= name, prefix = split_name name init_pos = @io.pos @io.write "\0" * 512 # 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 @io.write header @io.pos = final_pos self end
add_file_simple(name, mode, size)
Link
Add file name
with permissions mode
size
bytes long. Yields an IO to
write the file to.
# File ../ruby/lib/rubygems/package/tar_writer.rb, line 135 def add_file_simple(name, mode, size) # :yields: io check_closed name, prefix = split_name name header = Gem::Package::TarHeader.new(:name => name, :mode => mode, :size => size, :prefix => prefix).to_s @io.write header os = BoundedStream.new @io, size yield os if block_given? min_padding = size - os.written @io.write("\0" * min_padding) remainder = (512 - (size % 512)) % 512 @io.write("\0" * remainder) self end
check_closed()
Link
mkdir(name, mode)
Link
Creates a new directory in the tar file name
with
mode