Sha256: ecca164da9310dbb3ef50fbb936d56c1f2e336701ba9dd0baf6e9b2172ce8cf9

Contents?: true

Size: 413 Bytes

Versions: 8

Compression:

Stored size: 413 Bytes

Contents

# frozen_string_literal: true

module MrCommon
  module CSVExportable
    extend ActiveSupport::Concern

    class_methods do
      def as_csv
        CSV.generate do |csv|
          csv << csv_column_names
          all.each do |item|
            csv << item.attributes.values_at(*csv_column_names)
          end
        end
      end

      def csv_column_names
        column_names
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
mr_common-1.2.0 app/models/concerns/mr_common/csv_exportable.rb
mr_common-1.1.0 app/models/concerns/mr_common/csv_exportable.rb
mr_common-1.0.5 app/models/concerns/mr_common/csv_exportable.rb
mr_common-1.0.4 app/models/concerns/mr_common/csv_exportable.rb
mr_common-1.0.3 app/models/concerns/mr_common/csv_exportable.rb
mr_common-1.0.2 app/models/concerns/mr_common/csv_exportable.rb
mr_common-1.0.1 app/models/concerns/mr_common/csv_exportable.rb
mr_common-1.0.0 app/models/concerns/mr_common/csv_exportable.rb