# File lib/archive/tar/minitar.rb, line 66
66:   def self.new_from_stream(stream, long_name = nil)
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:     if typeflag == 'L' && name == '././@LongLink'
89:         long_name = stream.read(512).rstrip
90:         return new_from_stream(stream, long_name)
91:     end
92: 
93:     new(:name => long_name || name,
94:         :mode => mode, :uid => uid, :gid => gid,
95:         :size => size, :mtime => mtime, :checksum => checksum,
96:         :typeflag => typeflag, :magic => magic, :version => version,
97:         :uname => uname, :gname => gname, :devmajor => devmajor,
98:         :devminor => devminor, :prefix => prefix, :empty => empty)
99:   end