Sha256: a3167b84e5468a1201f5cdce14f87739f93a6ab7590495977624f0588eeae002

Contents?: true

Size: 770 Bytes

Versions: 2

Compression:

Stored size: 770 Bytes

Contents

# encoding: utf-8

require "arr-pm/namespace"
require "arr-pm/v2/format"
require "arr-pm/v2/error"

# The header of an rpm has ... a header. Funky naming :)
class ArrPM::V2::HeaderHeader
  MAGIC = [ 0x8e, 0xad, 0xe8 ]
  MAGIC_LENGTH = MAGIC.count

  attr_accessor :version, :entries, :bytesize

  def load(io)
    data = io.read(16)
    parse(data)
  end

  def parse(data)
    magic, version, reserved, entries, bytesize = data.unpack("a3Ca4NN")
    self.class.validate_magic(magic.bytes)

    @version = version
    @entries = entries
    @bytesize = bytesize
    nil
  end

  def dump
    [magic, 1, 0, @entries, @bytesize].pack("a3Ca4NN")
  end

  def self.validate_magic(value)
    raise ArrPM::V2::Error::InvalidHeaderMagicValue, value if value != MAGIC
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
arr-pm-0.0.12 lib/arr-pm/v2/header_header.rb
arr-pm-0.0.11 lib/arr-pm/v2/header_header.rb