3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/gillbus/v2/parser.rb', line 3
def parse_fields(raw_data, fields_settings)
result = {}
fields_settings.each do |field|
if field[:type] == :translations_hash && raw_data["translations"]
result[field[:name]] =
fetch_from_translations(raw_data["translations"], field[:from])
next
end
raw_value =
if field[:from].is_a?(Hash)
field[:from].map { |key, value| [key, raw_data[value]] }.to_h
else
raw_data[field[:from]]
end
if field[:enrich_with]
raw_value = enrich_data(raw_value, raw_data, field[:enrich_with])
end
result[field[:name]] =
if raw_value.nil?
field[:default]
else
coerce_value(raw_value, field[:type])
end
end
result
end
|