Module: Gdsapi::Methods::ParseUtils
- Included in:
- BaseMethod
- Defined in:
- lib/gdsapi/methods/utils/parse_utils.rb
Instance Method Summary collapse
-
#match_attributes(set, dictionary) ⇒ Array[Hash]|nil
Helping routine for matching given attributes with dictionary.
Instance Method Details
#match_attributes(set, dictionary) ⇒ Array[Hash]|nil
Helping routine for matching given attributes with dictionary
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# 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 |