class ARCSVImporter::Importer

Attributes

file_path[RW]
import_class[RW]
row_order[RW]

Public Class Methods

new(file_path, import_class, *row_order) click to toggle source
# File lib/ar_csv_importer/importer.rb, line 5
def initialize(file_path, import_class, *row_order)
  @file_path = file_path
  @import_class = import_class
  @row_order = row_order.flatten
end

Public Instance Methods

import(raise_validation_errors = false) click to toggle source
# File lib/ar_csv_importer/importer.rb, line 11
def import(raise_validation_errors = false)
  meth = raise_validation_errors ? :create! : :create
  CSV.foreach(file_path) do |row|
    import_class.send(meth, attrs_from_row(row))
  end
end

Private Instance Methods

attrs_from_row(row) click to toggle source
# File lib/ar_csv_importer/importer.rb, line 19
def attrs_from_row(row)
  Hash[row.each_with_index.map { |r, i| [row_order[i], r] }]
end