Sha256: 50142a3bdeccbdfd4cab5fe28e6797b67812ef14c0ddfc8943ccae1dc553ce49

Contents?: true

Size: 846 Bytes

Versions: 4

Compression:

Stored size: 846 Bytes

Contents

module ActiveList
  module Exporters
    class CsvExporter < AbstractExporter
      def file_extension
        'csv'
      end

      def mime_type
        Mime[:csv]
      end

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

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
active_list-8.0.0 lib/active_list/exporters/csv_exporter.rb
active_list-7.2.0 lib/active_list/exporters/csv_exporter.rb
active_list-7.1.0 lib/active_list/exporters/csv_exporter.rb
active_list-7.0.0 lib/active_list/exporters/csv_exporter.rb