56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/scale/base.rb', line 56
def decode(scale_bytes)
puts "BEGIN " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true
byte = scale_bytes.get_next_bytes(1)
if byte == [0]
puts " END " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true
new(nil)
elsif byte == [1]
type =
if self::INNER_TYPE.class == ::String
Scale::Types.get(self::INNER_TYPE)
else
self::INNER_TYPE
end
value = type.decode(scale_bytes)
puts " END " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true
new(value)
else
raise BadDataError.new("Bad scale data for #{self::TYPE_NAME}")
end
end
|