class Drydock::TarWriter
Public Instance Methods
add_entry(name, mode: 0644, mtime: Time.now, uid: 0, gid: 0) { |restricted_stream| ... }
click to toggle source
# File lib/drydock/tar_writer.rb, line 5 def add_entry(name, mode: 0644, mtime: Time.now, uid: 0, gid: 0) check_closed fail 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, mtime: mtime ) @io.write header @io.pos = final_pos self end