Class Gem::Package::TarReader::Entry
In: lib/rubygems/package/tar_reader/entry.rb
Parent: Object

Methods

bytes_read   close   closed?   directory?   eof?   file?   full_name   getc   new   pos   read   rewind  

Attributes

header  [R] 

Public Class methods

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 12
12:   def initialize(header, io)
13:     @closed = false
14:     @header = header
15:     @io = io
16:     @orig_pos = @io.pos
17:     @read = 0
18:   end

Public Instance methods

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 24
24:   def bytes_read
25:     @read
26:   end

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 28
28:   def close
29:     @closed = true
30:   end

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 32
32:   def closed?
33:     @closed
34:   end

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 61
61:   def directory?
62:     @header.typeflag == "5"
63:   end

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 36
36:   def eof?
37:     check_closed
38: 
39:     @read >= @header.size
40:   end

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 65
65:   def file?
66:     @header.typeflag == "0"
67:   end

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 42
42:   def full_name
43:     if @header.prefix != "" then
44:       File.join @header.prefix, @header.name
45:     else
46:       @header.name
47:     end
48:   end

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 50
50:   def getc
51:     check_closed
52: 
53:     return nil if @read >= @header.size
54: 
55:     ret = @io.getc
56:     @read += 1 if ret
57: 
58:     ret
59:   end

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 69
69:   def pos
70:     check_closed
71: 
72:     bytes_read
73:   end

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 75
75:   def read(len = nil)
76:     check_closed
77: 
78:     return nil if @read >= @header.size
79: 
80:     len ||= @header.size - @read
81:     max_read = [len, @header.size - @read].min
82: 
83:     ret = @io.read max_read
84:     @read += ret.size
85: 
86:     ret
87:   end

[Source]

    # File lib/rubygems/package/tar_reader/entry.rb, line 89
89:   def rewind
90:     check_closed
91: 
92:     raise Gem::Package::NonSeekableIO unless @io.respond_to? :pos=
93: 
94:     @io.pos = @orig_pos
95:     @read = 0
96:   end

[Validate]