Sha256: 63dbf5283b601c07aad6db2bf5394b5c41e34d03dcd58f199b753b1af3fbae44

Contents?: true

Size: 953 Bytes

Versions: 1

Compression:

Stored size: 953 Bytes

Contents

require "SimpleCSVUploder/version"

module SimpleCSVUploder
  attr_accessor :file

  def initialize(params = {})
    @file = params.delete(:file)
    super
    if @file
      self.filename = sanitize_filename(@file.original_filename)
      self.content_type = @file.content_type
      self.file_contents = @file.read
    end
  end

  def upload_local
    path = "#{Rails.root}/public/uploads/csv"
    FileUtils.mkdir_p(path) unless File.exists?(path)
    FileUtils.copy(@file.tempfile, path)
  end

  private

  def sanitize_filename(filename)
    return File.basename(filename)
  end

  def csv_file_format
    if self.content_type != "text/csv"
     errors.add(:file, 'File format should be only CSV.')
    end
  end

  NUM_BYTES_IN_MEGABYTE = 1048576
  def file_size_under_one_mb
    if !@file.nil?
      if (@file.size.to_f / NUM_BYTES_IN_MEGABYTE) > 1
        errors.add(:file, 'File size cannot be over one megabyte.')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
SimpleCSVUploder-0.1.2 lib/SimpleCSVUploder.rb