module Scale::Types::VecU8FixedLength

Public Class Methods

included(base) click to toggle source
# File lib/scale/base.rb, line 413
def self.included(base)
  base.extend ClassMethods
end

Public Instance Methods

encode() click to toggle source
# File lib/scale/base.rb, line 417
def encode
  byte_length = self.class::BYTE_LENGTH
  raise "#{self.class.name}'s byte length is wrong: #{byte_length}" unless %w[2 3 4 8 16 20 32 64 128 256].include?(byte_length.to_s)

  if value.start_with?("0x") && value.length == (byte_length * 2 + 2)
    value[2..]
  else
    bytes = value.unpack("C*")
    bytes.bytes_to_hex[2..]
  end
end