module Scale::Types::VecU8FixedLength::ClassMethods
Public Instance Methods
decode(scale_bytes)
click to toggle source
# File lib/scale/base.rb, line 396 def decode(scale_bytes) puts " BEGIN " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true byte_length = self::BYTE_LENGTH raise "#{self.name} byte length is wrong: #{byte_length}" unless %w[2 3 4 8 16 20 32 64 128 256].include?(byte_length.to_s) bytes = scale_bytes.get_next_bytes(byte_length) str = bytes.pack("C*").force_encoding("utf-8") if str.valid_encoding? puts " END " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true new str else puts " END " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true new bytes.bytes_to_hex end end