lib/dwc-archive.rb in dwc-archive-0.3.1 vs lib/dwc-archive.rb in dwc-archive-0.4.0
- old
+ new
@@ -20,21 +20,32 @@
require 'dwc-archive/extension'
require 'dwc-archive/metadata'
require 'dwc-archive/generator'
require 'dwc-archive/generator_meta_xml'
require 'dwc-archive/generator_eml_xml'
+require 'dwc-archive/classification_normalizer'
class DarwinCore
attr_reader :archive, :core, :metadata, :extensions
alias :eml :metadata
DEFAULT_TMP_DIR = "/tmp"
+ def self.nil_field?(field)
+ return true if [nil, '', '/N'].include?(field)
+ false
+ end
+
def initialize(dwc_path, tmp_dir = DEFAULT_TMP_DIR)
@archive = DarwinCore::Archive.new(dwc_path, tmp_dir)
@core = DarwinCore::Core.new(@archive)
@metadata = DarwinCore::Metadata.new(@archive)
@extensions = get_extensions
+ end
+
+ def normalize_classification
+ return nil unless core.fields.map { |f| f[:term].split('/')[-1].downcase }.include? 'highertaxonid'
+ DarwinCore::ClassificationNormalizer.new(self).normalize
end
def self.clean_all(tmp_dir = DEFAULT_TMP_DIR)
Dir.entries(tmp_dir).each do |entry|
path = File.join(tmp_dir, entry)