lib/bolognese/utils.rb in bolognese-0.6.5 vs lib/bolognese/utils.rb in bolognese-0.6.6

- old
+ new

@@ -73,16 +73,24 @@ element elsif element.is_a?(Hash) element.fetch(content, nil) elsif element.is_a?(Array) a = element.map { |e| e.fetch(content, nil) }.uniq - a.length == 1 ? a.first : a + array_unwrap(a) else nil end end + def array_unwrap(element) + case element.length + when 0 then nil + when 1 then element.first + else element + end + end + def normalize_id(id) return nil unless id.present? normalize_doi(id) || Addressable::URI.parse(id).host && PostRank::URI.clean(id) end @@ -94,9 +102,10 @@ # turn ORCID ID into URL "http://orcid.org/" + Addressable::URI.encode(orcid) end def normalize_ids(list) - Array.wrap(list).map { |url| url.merge("@id" => normalize_id(url["@id"])) } + a = Array.wrap(list).map { |url| url.merge("@id" => normalize_id(url["@id"])) } + array_unwrap(a) end end end