Module: Scale::Types::Enum::ClassMethods

Defined in:
lib/scale/base.rb

Instance Method Summary collapse

Instance Method Details

#decode(scale_bytes) ⇒ Object



256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
# 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) ⇒ Object

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



281
282
283
# File 'lib/scale/base.rb', line 281

def inner_types(*inner_types)
  const_set(:INNER_TYPES, inner_types)
end

#items(**items) ⇒ Object

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



286
287
288
# File 'lib/scale/base.rb', line 286

def items(**items)
  const_set(:ITEMS, items)
end

#values(*values) ⇒ Object

1, “hello”


291
292
293
# File 'lib/scale/base.rb', line 291

def values(*values)
  const_set(:VALUES, values)
end