Class: Tar::Header

Inherits:
Object
  • Object
show all
Defined in:
lib/tar/header.rb

Constant Summary collapse

SCHEMA =
Schema.new {
  string :name, 100
  octal_number :mode, 8
  octal_number :uid, 8
  octal_number :gid, 8
  octal_number :size, 12
  timestamp :mtime, 12
  octal_number :checksum, 8
  string :typeflag, 1
  string :link_name, 100
  string :magic, 6
  string :version, 2
  string :uname, 32
  string :gname, 32
  octal_number :dev_major, 8
  octal_number :dev_minor, 8
  string :prefix, 155
}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(values, checksum: nil) ⇒ Header

Returns a new instance of Header.



31
32
33
34
# File 'lib/tar/header.rb', line 31

def initialize(values, checksum: nil)
  @values = values
  check_checksum!(checksum) if checksum
end

Class Method Details

.parse(record) ⇒ Object



47
48
49
50
# File 'lib/tar/header.rb', line 47

def self.parse(record)
  expected_checksum = SCHEMA.clear(record, :checksum).chars.sum(&:ord)
  new(SCHEMA.parse(record), checksum: expected_checksum)
end

Instance Method Details

#pathObject



42
43
44
45
# File 'lib/tar/header.rb', line 42

def path
  return name if prefix.nil?
  "#{prefix}/#{name}"
end