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