module Scale::Types::Enum::ClassMethods

Public Instance Methods

decode(scale_bytes) click to toggle source
# File lib/scale/base.rb, line 256
def decode(scale_bytes)
  puts "BEGIN " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true
  index = scale_bytes.get_next_bytes(1)[0]
  if const_defined? "ITEMS"
    type = self::ITEMS.values[index]
    if type.class == ::String
      type = Scale::Types.get(type)
    end
    value = type.decode(scale_bytes)
  elsif const_defined? "INNER_TYPES"
    type = self::INNER_TYPES[index]
    if type.class == ::String
      type = Scale::Types.get(type)
    end
    value = type.decode(scale_bytes)
  else # VALUES
    value = self::VALUES[index]
  end
  puts "  END " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true
  result = new(value)
  result.index = index
  result
end
inner_types(*inner_types) click to toggle source

inner_types(Scale::Types::Compact, “Hex”)

# File lib/scale/base.rb, line 281
def inner_types(*inner_types)
  const_set(:INNER_TYPES, inner_types)
end
items(**items) click to toggle source

items(Item1: Scale::Types::Compact, Item2: “Hex”)

# File lib/scale/base.rb, line 286
def items(**items)
  const_set(:ITEMS, items)
end
values(*values) click to toggle source
1, “hello”
# File lib/scale/base.rb, line 291
def values(*values)
  const_set(:VALUES, values)
end