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