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