module UR::Serialize

Public Class Methods

get_item_size(data_type) click to toggle source
# File lib/serialize.rb, line 43
def self.get_item_size(data_type)
  if data_type.start_with? 'VECTOR6'
    6
  elsif data_type.start_with? 'VECTOR3'
    3
  else
    1
  end
end
unpack_field(data, offset, data_type) click to toggle source
# File lib/serialize.rb, line 53
def self.unpack_field(data, offset, data_type)
  size = self.get_item_size(data_type)
  if data_type == 'VECTOR6D' or data_type == 'VECTOR3D'
    data[offset...offset+size].map(&:to_f)
  elsif data_type == 'VECTOR6UINT32'
    data[offset...offset+size].map(&:to_i)
  elsif data_type == 'DOUBLE'
    data[offset].to_f
  elsif data_type == 'UINT32' or data_type == 'UINT64'
    data[offset].to_i
  elsif data_type == 'VECTOR6INT32'
    data[offset...offset+size].map(&:to_i)
  elsif data_type == 'INT32' or data_type == 'UINT8'
    data[offset].to_i
  elsif data_type == 'BOOL'
    data[offset].to_i > 0 ? true : false
  else
    raise TypeError.new('unpack_field: unknown data type: ' + data_type)
  end
end

Public Instance Methods

[](item) click to toggle source
# File lib/serialize.rb, line 73
def [](item)
  @values[item]
end