Class: ASEPalette::PaletteBinary::ASEBinData::String16Null

Inherits:
BinData::Primitive
  • Object
show all
Defined in:
lib/ase-palette/palette_binary.rb

Instance Method Summary collapse

Instance Method Details

#getObject

Force UTF-16 string encoding when anonymous bytes are naively read in, then encode for UTF-8, which the user expects



34
35
36
# File 'lib/ase-palette/palette_binary.rb', line 34

def get
  self.data.force_encoding(Encoding::UTF_16BE).encode(Encoding::UTF_8)
end

#set(string) ⇒ Object

Expect to receive UTF-8 string when setting



39
40
41
# File 'lib/ase-palette/palette_binary.rb', line 39

def set(string)
  self.data = string.encode(Encoding::UTF_16BE)
end

#sizeObject

Calculate total size, in bytes, of:

  • UTF-16-encoded string

  • uint16 length of string (2 bytes)

  • null terminator (2 bytes)



47
48
49
# File 'lib/ase-palette/palette_binary.rb', line 47

def size
  self.data.length + 4
end