module Gdsapi::Methods::ParseUtils
Public Instance Methods
match_attributes(set, dictionary)
click to toggle source
Helping routine for matching given attributes with dictionary @param set [Array | nil] - set of {'id', 'value'}-ish attributes for country @param dictionary [Array] - dictionary of {'id', 'name'}-ish attributes @return [Array|nil] - {id:, name:, value:}-ish attributes hash if set is present, nil otherwise
# File lib/gdsapi/methods/utils/parse_utils.rb, line 9 def match_attributes(set, dictionary) return unless set grouped_set = set.group_by { |attribute| attribute['id'] } grouped_set.map do |id, set_attributes| dictionary_attribute = dictionary.find {|dict_attr| dict_attr['id'] == id } values = set_attributes.map { |set_attribute| set_attribute['value'] } if dictionary_attribute { id: dictionary_attribute['id'], name: dictionary_attribute['name'], values: values, } else raise MalformedGdsResponse, "Invalid response: missing attribute #{id}" end end end