class Gem::Package::TarReader::Entry
Class for reading entries out of a tar file
Attributes
          header[R]
        
        Header for this tar entry
Public Class Methods
          new(header, io)
          
          click to toggle source
          
        
        
        Creates a new tar entry for header that will be read from io
# File lib/rubygems/package/tar_reader/entry.rb, line 20 def initialize(header, io) @closed = false @header = header @io = io @orig_pos = @io.pos @read = 0 end
Public Instance Methods
          bytes_read()
          
          click to toggle source
          
        
        
        Number of bytes read out of the tar entry
# File lib/rubygems/package/tar_reader/entry.rb, line 35 def bytes_read @read end
          close()
          
          click to toggle source
          
        
        
        Closes the tar entry
# File lib/rubygems/package/tar_reader/entry.rb, line 42 def close @closed = true end
          closed?()
          
          click to toggle source
          
        
        
        Is the tar entry closed?
# File lib/rubygems/package/tar_reader/entry.rb, line 49 def closed? @closed end
          directory?()
          
          click to toggle source
          
        
        
        Is this tar entry a directory?
# File lib/rubygems/package/tar_reader/entry.rb, line 94 def directory? @header.typeflag == "5" end
          eof?()
          
          click to toggle source
          
        
        
        Are we at the end of the tar entry?
# File lib/rubygems/package/tar_reader/entry.rb, line 56 def eof? check_closed @read >= @header.size end
          file?()
          
          click to toggle source
          
        
        
        Is this tar entry a file?
# File lib/rubygems/package/tar_reader/entry.rb, line 101 def file? @header.typeflag == "0" end
          full_name()
          
          click to toggle source
          
        
        
        Full name of the tar entry
# File lib/rubygems/package/tar_reader/entry.rb, line 65 def full_name if @header.prefix != "" 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
          getc()
          
          click to toggle source
          
        
        
        Read one byte from the tar entry
# File lib/rubygems/package/tar_reader/entry.rb, line 80 def getc check_closed return nil if @read >= @header.size ret = @io.getc @read += 1 if ret ret end
          pos()
          
          click to toggle source
          
        
        
        The position in the tar entry
# File lib/rubygems/package/tar_reader/entry.rb, line 115 def pos check_closed bytes_read end
          read(len = nil)
          
          click to toggle source
          
        
        
        Reads len bytes from the tar file entry, or the rest of the entry if nil
# File lib/rubygems/package/tar_reader/entry.rb, line 131 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
          readpartial(maxlen = nil, outbuf = "".b)
          
          click to toggle source
          
        
        
        # File lib/rubygems/package/tar_reader/entry.rb, line 145 def readpartial(maxlen = nil, outbuf = "".b) check_closed raise EOFError if @read >= @header.size maxlen ||= @header.size - @read max_read = [maxlen, @header.size - @read].min @io.readpartial(max_read, outbuf) @read += outbuf.size outbuf end
          rewind()
          
          click to toggle source
          
        
        
        Rewinds to the beginning of the tar file entry
# File lib/rubygems/package/tar_reader/entry.rb, line 162 def rewind check_closed @io.pos = @orig_pos @read = 0 end
          size()
          
          click to toggle source
          
        
        
        # File lib/rubygems/package/tar_reader/entry.rb, line 121 def size @header.size end
          Also aliased as: length
        
        
        
      
          symlink?()
          
          click to toggle source
          
        
        
        Is this tar entry a symlink?
# File lib/rubygems/package/tar_reader/entry.rb, line 108 def symlink? @header.typeflag == "2" end