Class: EvoSynth::Output::CSVExporter

Inherits:
Object
  • Object
show all
Defined in:
lib/evosynth/output/exporter/csv_exporter.rb

Instance Method Summary collapse

Constructor Details

#initialize(logger, write_header = false, separator = ',') ⇒ CSVExporter

Returns a new instance of CSVExporter.



33
34
35
36
37
# File 'lib/evosynth/output/exporter/csv_exporter.rb', line 33

def initialize(logger, write_header = false, separator = ',')
	@logger = logger
	@write_header = write_header
	@separator = separator
end

Instance Method Details

#export(filename) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/evosynth/output/exporter/csv_exporter.rb', line 39

def export(filename)
	# Note: I see no advantage in using the 'csv' library for this

	File.open(filename,  "w+") do |file|
		if @write_header
			file.write("counter")
			file.write(@separator) unless @logger.column_names.nil?
			file.write(@logger.column_names.join(@separator))
			file.write("\n")
		end

		@logger.data.each_key do |key|
			file.write(key)
			file.write(@separator) unless @logger.data[key].nil?
			file.write(@logger.data[key].join(@separator))
			file.write("\n")
		end
	end
end