module ArrPM::V2::Tag::Type
Constants
- BINARY
- CHAR
- I18NSTRING
- INT16
- INT32
- INT64
- INT8
- NULL
- STRING
- STRING_ARRAY
- TYPE_MAP
Public Class Methods
parse(data, type, offset, count)
click to toggle source
# File lib/arr-pm/v2/tag.rb, line 18 def self.parse(data, type, offset, count) case type when NULL nil when CHAR data[offset, count].unpack("A#{count}") when INT8 data[offset, count].unpack("C" * count) when INT16 data[offset, 2 * count].unpack("n" * count) when INT32 data[offset, 4 * count].unpack("N" * count) when INT64 a, b = data[offset, 8].unpack("NN") a << 32 + b when STRING, I18NSTRING data[offset..-1][/^[^\0]*/] when BINARY data[offset, count] when STRING_ARRAY data[offset..-1].split("\0")[0...count] else raise ArrPM::V2::Error::InvalidType, type end end