module Scale::Types::Struct::ClassMethods
new(1.to_u32, U32(69))
Public Instance Methods
decode(scale_bytes)
click to toggle source
# File lib/scale/base.rb, line 166 def decode(scale_bytes) puts "BEGIN " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true # item_values: # { # a: ..., # b: ... # } item_values = {} self::ITEMS.each_pair do |item_name, item_type| if item_type.class == ::String item_type = Scale::Types.get(item_type) end item_values[item_name] = item_type.decode(scale_bytes) end # value = {} # self::ITEM_NAMES.zip(item_values) do |attr, val| # value[attr] = val # end puts " END " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true result = new(item_values) item_values.each_pair do |item_name, item_value| result.send "#{item_name.to_s}=", item_value end result end
inherited(child)
click to toggle source
# File lib/scale/base.rb, line 162 def inherited(child) child.const_set(:TYPE_NAME, child.name) end
items(**items)
click to toggle source
items(a: Scale::Types::Type1, b: “Type2”)
# File lib/scale/base.rb, line 198 def items(**items) const_set(:ITEMS, items) item_names = items.keys attr_accessor *item_names end