44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/skyfall/car_archive.rb', line 44
def self.convert_data(object)
if object.is_a?(Hash)
object.each do |k, v|
if v.is_a?(Hash) || v.is_a?(Array)
convert_data(v)
elsif v.is_a?(CBOR::Tagged)
object[k] = make_cid_link(v)
elsif v.is_a?(String) && v.encoding == Encoding::ASCII_8BIT
object[k] = make_bytes(v)
end
end
elsif object.is_a?(Array)
object.each_with_index do |v, i|
if v.is_a?(Hash) || v.is_a?(Array)
convert_data(v)
elsif v.is_a?(CBOR::Tagged)
object[i] = make_cid_link(v)
elsif v.is_a?(String) && v.encoding == Encoding::ASCII_8BIT
object[i] = make_bytes(v)
end
end
else
raise DecodeError, "Unexpected value type in record: #{object}"
end
end
|