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



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