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