Class: Cabriolet::Models::HLPHeader

Inherits:
Object
  • Object
show all
Defined in:
lib/cabriolet/models/hlp_header.rb

Overview

HLP file header model

NOTE: This implementation is based on the knowledge that HLP files use LZSS compression with MODE_MSHELP, but cannot be fully validated due to lack of test fixtures. Testing relies on round-trip compression/decompression and comparison with libmspack tools if available.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(magic: nil, version: nil, filename: nil, length: 0) ⇒ HLPHeader

Initialize HLP header

Parameters:

  • magic (String) (defaults to: nil)

    Magic number (should be specific to HLP)

  • version (Integer) (defaults to: nil)

    Format version

  • filename (String) (defaults to: nil)

    Original filename

  • length (Integer) (defaults to: 0)

    Uncompressed file length



21
22
23
24
25
26
27
# File 'lib/cabriolet/models/hlp_header.rb', line 21

def initialize(magic: nil, version: nil, filename: nil, length: 0)
  @magic = magic
  @version = version
  @filename = filename
  @length = length
  @files = []
end

Instance Attribute Details

#filenameObject

Returns the value of attribute filename.



13
14
15
# File 'lib/cabriolet/models/hlp_header.rb', line 13

def filename
  @filename
end

#filesObject

Returns the value of attribute files.



13
14
15
# File 'lib/cabriolet/models/hlp_header.rb', line 13

def files
  @files
end

#lengthObject

Returns the value of attribute length.



13
14
15
# File 'lib/cabriolet/models/hlp_header.rb', line 13

def length
  @length
end

#magicObject

Returns the value of attribute magic.



13
14
15
# File 'lib/cabriolet/models/hlp_header.rb', line 13

def magic
  @magic
end

#versionObject

Returns the value of attribute version.



13
14
15
# File 'lib/cabriolet/models/hlp_header.rb', line 13

def version
  @version
end

Instance Method Details

#valid?Boolean

Check if header is valid

Returns:

  • (Boolean)

    true if header appears valid



32
33
34
# File 'lib/cabriolet/models/hlp_header.rb', line 32

def valid?
  !@magic.nil? && !@version.nil?
end