class DataExporter::Exporter

Public Class Methods

new(objects, format) click to toggle source
# File data_exporter/lib/data_exporter.rb, line 5
def initialize(objects, format)
  @objects = objects
  @format = format
end

Public Instance Methods

export() click to toggle source
# File data_exporter/lib/data_exporter.rb, line 10
def export
  case @format
    when :csv
      export_to_csv
  end
end
export_to_tempfile() click to toggle source
# File data_exporter/lib/data_exporter.rb, line 17
def export_to_tempfile
  case @format
    when :csv
      export_to_csv_tempfile
  end
end

Private Instance Methods

export_to_csv() click to toggle source
# File data_exporter/lib/data_exporter.rb, line 26
def export_to_csv
  CSV.generate(headers: true, col_sep: ';') do |csv|
    write_data_to_csv(csv)
  end
end
export_to_csv_tempfile(filename_prefix) click to toggle source
# File data_exporter/lib/data_exporter.rb, line 32
def export_to_csv_tempfile(filename_prefix)
  Tempfile.open([filename_prefix, '.csv']) do |csv_tempfile|
    csv_tempfile << export_to_csv
  end
end
write_data_to_csv(csv) click to toggle source
# File data_exporter/lib/data_exporter.rb, line 38
def write_data_to_csv(csv)
  if @objects.first.respond_to? :export_header
    csv << @objects.first.export_header
  end
  @objects.each do |object|
    csv << object.export
  end
end