Sha256: 43d0efd845003c7fb6505b148d90025a14342fc44e5994ccba257db7108e3fd0

Contents?: true

Size: 1.13 KB

Versions: 4

Compression:

Stored size: 1.13 KB

Contents

# frozen_string_literal: true

require 'carrierwave'

module Zizia
  class CsvManifestUploader < CarrierWave::Uploader::Base
    # Choose what kind of storage to use for this uploader:
    storage :file

    # Process calls that method whenever a file is uploaded.
    process :validate_csv

    # The directory where the csv manifest will be stored.
    def store_dir
      Rails.root.join('tmp', 'csv_uploads')
    end

    def cache_dir
      Rails.root.join('tmp', 'csv_uploads_cache')
    end

    # Add a white list of extensions which are allowed to be uploaded.
    # For images you might use something like this:
    #   %w(jpg jpeg gif png)
    def extension_whitelist
      %w[csv]
    end

    # These are stored in memory only, not persisted
    def errors
      @validator ? @validator.errors : []
    end

    # These are stored in memory only, not persisted
    def warnings
      @validator ? @validator.warnings : []
    end

    def records
      @validator ? @validator.record_count : 0
    end

    private

      def validate_csv
        @validator = CsvManifestValidator.new(self)
        @validator.validate
      end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
zizia-3.0.0.alpha.01 app/uploaders/zizia/csv_manifest_uploader.rb
zizia-2.1.0.alpha.09 app/uploaders/zizia/csv_manifest_uploader.rb
zizia-2.1.0.alpha.08 app/uploaders/zizia/csv_manifest_uploader.rb
zizia-2.1.0.alpha.07 app/uploaders/zizia/csv_manifest_uploader.rb