Class for reading entries out of a tar file
Number of bytes read out of the tar entry
# File rubygems/package/tar_reader/entry.rb, line 34 def bytes_read @read end
Closes the tar entry
# File rubygems/package/tar_reader/entry.rb, line 41 def close @closed = true end
Is the tar entry closed?
# File rubygems/package/tar_reader/entry.rb, line 48 def closed? @closed end
Is this tar entry a directory?
# File rubygems/package/tar_reader/entry.rb, line 93 def directory? @header.typeflag == "5" end
Are we at the end of the tar entry?
# File rubygems/package/tar_reader/entry.rb, line 55 def eof? check_closed @read >= @header.size end
Is this tar entry a file?
# File rubygems/package/tar_reader/entry.rb, line 100 def file? @header.typeflag == "0" end
Full name of the tar entry
# File rubygems/package/tar_reader/entry.rb, line 64 def full_name if @header.prefix != "" then File.join @header.prefix, @header.name else @header.name end rescue ArgumentError => e raise unless e.message == 'string contains null byte' raise Gem::Package::TarInvalidError, 'tar is corrupt, name contains null byte' end
Read one byte from the tar entry
# File rubygems/package/tar_reader/entry.rb, line 79 def getc check_closed return nil if @read >= @header.size ret = @io.getc @read += 1 if ret ret end
The position in the tar entry
# File rubygems/package/tar_reader/entry.rb, line 107 def pos check_closed bytes_read end
Reads len
bytes from the tar file entry, or the rest of the
entry if nil
# File rubygems/package/tar_reader/entry.rb, line 117 def read(len = nil) check_closed return nil if @read >= @header.size len ||= @header.size - @read max_read = [len, @header.size - @read].min ret = @io.read max_read @read += ret.size ret end