# File tar.rb, line 108 108: def RecordHeader.from_stream( stream ) 109: fields = stream.read( RECORD_SIZE ).unpack( "A#{NAME_SIZE}" + # record name 110: "A8A8A8" + # mode, uid, gid 111: "A12A12A8" + # size, mtime, chksum 112: "A" + # linkflag 113: "A#{NAME_SIZE}" + # link name 114: "A6A2" + # magic, version 115: "A#{UNAME_LEN}" + # uname 116: "A#{GNAME_LEN}" + # gname 117: "A8A8" + # dev major, dev minor 118: "A#{PREFIX_LEN}" # prefix 119: ) 120: 121: name = fields.shift 122: mode = fields.shift.oct 123: uid = fields.shift.oct 124: gid = fields.shift.oct 125: size = fields.shift.oct 126: mtime = fields.shift.oct 127: chksum = fields.shift.oct 128: linkflag = fields.shift 129: linkname = fields.shift 130: magic = fields.shift 131: version = fields.shift.oct 132: uname = fields.shift 133: gname = fields.shift 134: devmajor = fields.shift.oct 135: devminor = fields.shift.oct 136: prefix = fields.shift 137: 138: new( :name=>name, :mode=>mode, :uid=>uid, :gid=>gid, :size=>size, :mtime=>mtime, :chksum=>chksum, 139: :linkflag=>linkflag, :magic=>magic, :version=>version, :uname=>uname, :gname=>gname, 140: :devmajor=>devmajor, :devminor=>devminor, :prefix=>prefix ) 141: end