class Tar::Header

Constants

SCHEMA

Public Class Methods

new(values, checksum: nil) click to toggle source
# File lib/tar/header.rb, line 31
def initialize(values, checksum: nil)
  @values = values
  check_checksum!(checksum) if checksum
end
parse(record) click to toggle source
# 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

Public Instance Methods

path() click to toggle source
# File lib/tar/header.rb, line 42
def path
  return name if prefix.nil?
  "#{prefix}/#{name}"
end

Private Instance Methods

check_checksum!(expected_checksum) click to toggle source
# File lib/tar/header.rb, line 54
def check_checksum!(expected_checksum)
  raise ChecksumMismatch, "checksum mismatch at #{path.inspect}: expected #{expected_checksum}, got #{checksum}" unless checksum == expected_checksum
end