13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/smo_sepa_kiwis/response_parser.rb', line 13
def self.validate_and_convert(data)
return [] if data == []
unless data.is_a?(Array) && data.first.is_a?(Array) && data.first.all? { |h| h.is_a?(String) }
raise ParseError, "Unexpected response shape: #{data.class}"
end
= data.first.map { |h| h.to_sym }
rows = data[1..]
return [] if rows.nil? || rows.empty?
rows.map do |row|
unless row.is_a?(Array)
raise ParseError, "Expected row to be an Array, got #{row.class}"
end
.zip(row).to_h
end
end
|