lib/dwc-archive/classification_normalizer.rb in dwc-archive-0.7.9 vs lib/dwc-archive/classification_normalizer.rb in dwc-archive-0.7.10
- old
+ new
@@ -227,11 +227,11 @@
end
def ingest_extensions
@extensions.each do |e|
ext, fields = *e
- ingest_synonyms(e) if fields.keys.include? :scientificname
+ ingest_synonyms(e) if (File.split(e[0].file_path).last.match(/synonym/i) && fields.keys.include?(:scientificname))
ingest_vernaculars(e) if fields.keys.include? :vernacularname
end
end
def ingest_synonyms(extension)
@@ -243,13 +243,17 @@
synonym = SynonymNormalized.new(
nil,
r[fields[:scientificname]],
r[fields[:canonicalname]],
fields[:taxonomicstatus] ? r[fields[:taxonomicstatus]] : nil)
- @normalized_data[r[fields[:id]]].synonyms << synonym
- add_name_string(synonym.name)
- add_name_string(synonym.canonical_name)
+ if @normalized_data[r[fields[:id]]]
+ @normalized_data[r[fields[:id]]].synonyms << synonym
+ add_name_string(synonym.name)
+ add_name_string(synonym.canonical_name)
+ else
+ @error_names << { :taxon => synonym, :error => :synonym_of_unknown_taxa }
+ end
end
end
end
def ingest_vernaculars(extension)
@@ -272,11 +276,15 @@
vernacular = VernacularNormalized.new(
r[fields[:vernacularname]],
language,
locality,
country_code)
- @normalized_data[r[fields[:id]]].vernacular_names << vernacular
- add_vernacular_name_string(vernacular.name)
+ if @normalized_data[r[fields[:id]]]
+ @normalized_data[r[fields[:id]]].vernacular_names << vernacular
+ add_vernacular_name_string(vernacular.name)
+ else
+ @error_names << { :vernacular_name => vernacular, :error => :vernacular_of_unknown_taxa }
+ end
end
end
end
end