Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
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
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.