Sha256: c54c71d208e956f4b4db1b88118cf79b9ead40b0f9ad80b4016d6b7a7e657e56

Contents?: true

Size: 1.11 KB

Versions: 4

Compression:

Stored size: 1.11 KB

Contents

# encoding: UTF-8

# Register XCSV format unless is already set
Mime::Type.register("text/csv", :xcsv) unless defined? Mime::XCSV

module ActiveList
  
  class ExcelCsvExporter < ActiveList::CsvExporter

    def file_extension
      "csv"
    end

    def mime_type
      Mime::XCSV
    end

    def send_data_code(table)
      record = "r"
      code  = table.select_data_code(:paginate => false)
      encoding = "CP1252"
      code << "data = ActiveList::CSV.generate(:col_sep => ';') do |csv|\n"
      code << "  csv << [#{columns_to_array(table, :header, :encoding => encoding).join(', ')}]\n"
      code << "  for #{record} in #{table.records_variable_name}\n"  
      code << "    csv << [#{columns_to_array(table, :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
    end

  end

end

ActiveList.register_exporter(:xcsv, ActiveList::ExcelCsvExporter)

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
active-list-4.2.4 lib/active-list/exporters/excel_csv_exporter.rb
active-list-4.2.3 lib/active-list/exporters/excel_csv_exporter.rb
active-list-4.2.2 lib/active-list/exporters/excel_csv_exporter.rb
active-list-4.2.1 lib/active-list/exporters/excel_csv_exporter.rb