Class: ActiveList::Exporters::ExcelCsvExporter

Inherits:
CsvExporter show all
Defined in:
lib/active_list/exporters/excel_csv_exporter.rb

Instance Attribute Summary

Attributes inherited from AbstractExporter

#generator, #table

Instance Method Summary collapse

Methods inherited from AbstractExporter

#columns_headers, #columns_to_array, #initialize

Constructor Details

This class inherits a constructor from ActiveList::Exporters::AbstractExporter

Instance Method Details

#file_extensionObject



12
13
14
# File 'lib/active_list/exporters/excel_csv_exporter.rb', line 12

def file_extension
  "csv"
end

#mime_typeObject



16
17
18
# File 'lib/active_list/exporters/excel_csv_exporter.rb', line 16

def mime_type
  Mime::XCSV
end

#send_data_codeObject



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/active_list/exporters/excel_csv_exporter.rb', line 20

def send_data_code
  record = "r"
  code  = generator.select_data_code(paginate: false)
  encoding = "CP1252"
  code << "data = ActiveList::CSV.generate(:col_sep => ';') do |csv|\n"
  code << "  csv << [#{columns_to_array(:header, encoding: encoding).join(', ')}]\n"
  code << "  for #{record} in #{generator.records_variable_name}\n"
  code << "    csv << [#{columns_to_array(:body, record: record, encoding: encoding).join(', ')}]\n"
  code << "  end\n"
  code << "end\n"
  code << "send_data(data, type: #{self.mime_type.to_s.inspect}, disposition: 'inline', filename: #{table.model.name}.model_name.human.gsub(/[^a-z0-9]/i,'_')+'.#{self.file_extension}')\n"
  return code.c
end