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.