lib/bolognese/utils.rb in bolognese-0.8.2 vs lib/bolognese/utils.rb in bolognese-0.8.3
- old
+ new
@@ -101,10 +101,21 @@
end
def normalize_id(id)
return nil unless id.present?
- normalize_doi(id) || Addressable::URI.parse(id).host && PostRank::URI.clean(id)
+ # check for valid DOI
+ doi = normalize_doi(id)
+ return doi if doi.present?
+
+ # check for valid HTTP uri
+ uri = Addressable::URI.parse(id)
+ return nil unless uri && uri.host && %w(http https).include?(uri.scheme)
+
+ # clean up URL
+ PostRank::URI.clean(id)
+ rescue Addressable::URI::InvalidURIError
+ nil
end
def normalize_orcid(orcid)
orcid = validate_orcid(orcid)
return nil unless orcid.present?