Sha256: 1baa95d30bb2e2f9241e9d5eebe793c7568e410aa2bc7fb66cd5a10cb901623e
Contents?: true
Size: 1.41 KB
Versions: 2
Compression:
Stored size: 1.41 KB
Contents
# frozen_string_literal: true require 'csv' module Effective module EffectiveDatatable module Csv def csv_filename self.class.name.underscore.parameterize + '.csv' end def csv_content_type 'text/csv; charset=utf-8' end def csv_header columns.map { |_, opts| opts[:label] || '' } end def csv_file CSV.generate do |csv| csv << csv_header() collection.send(csv_collection_method) do |resources| resources = arrayize(resources, csv: true) format(resources, csv: true) finalize(resources) resources.each { |resource| csv << resource } end end end def csv_stream EffectiveResources.with_resource_enumerator do |lines| lines << CSV.generate_line(csv_header) if active_record_collection? collection.find_in_batches do |resources| resources = arrayize(resources, csv: true) format(resources, csv: true) finalize(resources) resources.each { |resource| lines << CSV.generate_line(resource) } end else resources = collection format(resources, csv: true) finalize(resources) resources.each { |resource| lines << CSV.generate_line(resource) } end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
effective_datatables-4.13.4 | app/models/effective/effective_datatable/csv.rb |
effective_datatables-4.13.3 | app/models/effective/effective_datatable/csv.rb |