lib/dwc-archive/generator.rb in dwc-archive-0.9.10 vs lib/dwc-archive/generator.rb in dwc-archive-0.9.11

- old
+ new

@@ -19,16 +19,11 @@ end def add_core(data, file_name, keep_headers = true) c = CSV.open(File.join(@path,file_name), @write) header = data.shift - fields = header.map do |f| - f.strip! - err = 'No header in core data, or header fields are not urls' - raise DarwinCore::GeneratorError.new(err) unless f.match(/^http:\/\//) - f.split('/')[-1] - end + fields = get_fields(header, 'core') data.unshift(fields) if keep_headers ignore_header_lines = keep_headers ? 1 : 0 @meta_xml_data[:core] = { fields: header, ignoreHeaderLines: ignore_header_lines, location:file_name } @@ -39,16 +34,11 @@ def add_extension(data, file_name, keep_headers = true, row_type = 'http://rs.tdwg.org/dwc/terms/Taxon') c = CSV.open(File.join(@path,file_name), @write) header = data.shift - fields = header.map do |f| - f.strip! - err = 'No header in core data, or header fields are not urls' - raise DarwinCore::GeneratorError.new(err) unless f.match(/^http:\/\//) - f.split('/')[-1] - end + fields = get_fields(header, 'extension') data.unshift(fields) if keep_headers ignore_header_lines = keep_headers ? 1 : 0 @meta_xml_data[:extensions] << { fields: header, ignoreHeaderLines: ignore_header_lines, location: file_name, @@ -78,8 +68,19 @@ end def pack a = "cd #{@path}; tar -zcf #{@dwc_path} *" system(a) + end + + private + + def get_fields(header, file_type) + header.map do |f| + f.strip! + err = "No header in %s data, or header fields are not urls" % file_type + raise DarwinCore::GeneratorError.new(err) unless f.match(/^http:\/\//) + f.split('/')[-1] + end end end end