66: def self.new_from_stream(stream)
67: data = stream.read(512)
68: fields = data.unpack(HEADER_UNPACK_FORMAT)
69: name = fields.shift
70: mode = fields.shift.oct
71: uid = fields.shift.oct
72: gid = fields.shift.oct
73: size = fields.shift.oct
74: mtime = fields.shift.oct
75: checksum = fields.shift.oct
76: typeflag = fields.shift
77: linkname = fields.shift
78: magic = fields.shift
79: version = fields.shift.oct
80: uname = fields.shift
81: gname = fields.shift
82: devmajor = fields.shift.oct
83: devminor = fields.shift.oct
84: prefix = fields.shift
85:
86: empty = (data == "\0" * 512)
87:
88: new(:name => name, :mode => mode, :uid => uid, :gid => gid,
89: :size => size, :mtime => mtime, :checksum => checksum,
90: :typeflag => typeflag, :magic => magic, :version => version,
91: :uname => uname, :gname => gname, :devmajor => devmajor,
92: :devminor => devminor, :prefix => prefix, :empty => empty)
93: end