| Class | Gem::Package::TarReader::Entry |
| In: |
lib/rubygems/package/tar_reader/entry.rb
|
| Parent: | Object |
Class for reading entries out of a tar file
| header | [R] | Header for this tar entry |
Closes the tar entry
# File lib/rubygems/package/tar_reader/entry.rb, line 41
41: def close
42: @closed = true
43: end
Is this tar entry a directory?
# File lib/rubygems/package/tar_reader/entry.rb, line 89
89: def directory?
90: @header.typeflag == "5"
91: end
Are we at the end of the tar entry?
# File lib/rubygems/package/tar_reader/entry.rb, line 55
55: def eof?
56: check_closed
57:
58: @read >= @header.size
59: end
Full name of the tar entry
# File lib/rubygems/package/tar_reader/entry.rb, line 64
64: def full_name
65: if @header.prefix != "" then
66: File.join @header.prefix, @header.name
67: else
68: @header.name
69: end
70: end
Read one byte from the tar entry
# File lib/rubygems/package/tar_reader/entry.rb, line 75
75: def getc
76: check_closed
77:
78: return nil if @read >= @header.size
79:
80: ret = @io.getc
81: @read += 1 if ret
82:
83: ret
84: end
The position in the tar entry
# File lib/rubygems/package/tar_reader/entry.rb, line 103
103: def pos
104: check_closed
105:
106: bytes_read
107: end
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 113
113: def read(len = nil)
114: check_closed
115:
116: return nil if @read >= @header.size
117:
118: len ||= @header.size - @read
119: max_read = [len, @header.size - @read].min
120:
121: ret = @io.read max_read
122: @read += ret.size
123:
124: ret
125: end