Parent

Class Index [+]

Quicksearch

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
20:   def initialize(header, io)
21:     @closed = false
22:     @header = header
23:     @io = io
24:     @orig_pos = @io.pos
25:     @read = 0
26:   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
35:   def bytes_read
36:     @read
37:   end
close() click to toggle source

Closes the tar entry

    # File lib/rubygems/package/tar_reader/entry.rb, line 42
42:   def close
43:     @closed = true
44:   end
closed?() click to toggle source

Is the tar entry closed?

    # File lib/rubygems/package/tar_reader/entry.rb, line 49
49:   def closed?
50:     @closed
51:   end
directory?() click to toggle source

Is this tar entry a directory?

    # File lib/rubygems/package/tar_reader/entry.rb, line 94
94:   def directory?
95:     @header.typeflag == "5"
96:   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
56:   def eof?
57:     check_closed
58: 
59:     @read >= @header.size
60:   end
file?() click to toggle source

Is this tar entry a file?

     # File lib/rubygems/package/tar_reader/entry.rb, line 101
101:   def file?
102:     @header.typeflag == "0"
103:   end
full_name() click to toggle source

Full name of the tar entry

    # File lib/rubygems/package/tar_reader/entry.rb, line 65
65:   def full_name
66:     if @header.prefix != "" then
67:       File.join @header.prefix, @header.name
68:     else
69:       @header.name
70:     end
71:   rescue ArgumentError => e
72:     raise unless e.message == 'string contains null byte'
73:     raise Gem::Package::TarInvalidError,
74:           'tar is corrupt, name contains null byte'
75:   end
getc() click to toggle source

Read one byte from the tar entry

    # File lib/rubygems/package/tar_reader/entry.rb, line 80
80:   def getc
81:     check_closed
82: 
83:     return nil if @read >= @header.size
84: 
85:     ret = @io.getc
86:     @read += 1 if ret
87: 
88:     ret
89:   end
pos() click to toggle source

The position in the tar entry

     # File lib/rubygems/package/tar_reader/entry.rb, line 108
108:   def pos
109:     check_closed
110: 
111:     bytes_read
112:   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 118
118:   def read(len = nil)
119:     check_closed
120: 
121:     return nil if @read >= @header.size
122: 
123:     len ||= @header.size - @read
124:     max_read = [len, @header.size - @read].min
125: 
126:     ret = @io.read max_read
127:     @read += ret.size
128: 
129:     ret
130:   end
rewind() click to toggle source

Rewinds to the beginning of the tar file entry

     # File lib/rubygems/package/tar_reader/entry.rb, line 135
135:   def rewind
136:     check_closed
137: 
138:     raise Gem::Package::NonSeekableIO unless @io.respond_to? :pos=
139: 
140:     @io.pos = @orig_pos
141:     @read = 0
142:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.