class RailsAdminImport::Formats::FileImporter

Attributes

error[R]
filename[R]
import_model[R]

Public Class Methods

new(import_model, params) click to toggle source
# File lib/rails_admin_import/formats/file_importer.rb, line 4
def initialize(import_model, params)
  if params.has_key?(:file)
    @filename = params[:file].tempfile
  end
  @import_model = import_model
end

Public Instance Methods

each(&block) click to toggle source
# File lib/rails_admin_import/formats/file_importer.rb, line 22
def each(&block)
  return enum_for(:each) unless block_given?

  if RailsAdminImport.config.logging && filename
    copy_uploaded_file_to_log_dir
  end

  each_record(&block)
end
valid?() click to toggle source
# File lib/rails_admin_import/formats/file_importer.rb, line 13
def valid?
  if filename.nil?
    @error = I18n.t("admin.import.missing_file")
    false
  else
    true
  end
end

Private Instance Methods

copy_uploaded_file_to_log_dir() click to toggle source
# File lib/rails_admin_import/formats/file_importer.rb, line 38
def copy_uploaded_file_to_log_dir
  copy_filename = "#{Time.now.strftime("%Y-%m-%d-%H-%M-%S")}-import.csv"
  dir_path = File.join(Rails.root, "log", "import")
  FileUtils.mkdir_p(dir_path)
  copy_path = File.join(dir_path, copy_filename)
  FileUtils.copy(filename, copy_path)
end
each_record() click to toggle source
# File lib/rails_admin_import/formats/file_importer.rb, line 34
def each_record
  raise "Implement each_record in subclasses"
end