Top Level Namespace

Instance Method Summary collapse

Instance Method Details

#create_importer(*columns, options) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/csv_import_ruby.rb', line 10

def create_importer(*columns, options)
  self.instance_eval do
    define_singleton_method(:import!) do |csv|
      CSV.parse(csv) do |row|
        import_row(row, columns, options)
      end
    end

    define_singleton_method(:import_file!) do |file_name|
      CSV.foreach(file_name) do |row|
        import_row(row, columns, options)
      end
    end
  end
end

#import_row(row, columns, options) ⇒ Object



3
4
5
6
7
8
# File 'lib/csv_import_ruby.rb', line 3

def import_row(row, columns, options)
  values = Hash[columns.zip(row)]
  attributes = values.select{ |key, value| self.column_names.include?(key.to_s) }
  attributes.each{ |key, value| attributes[key] = value.strip } if options[:remove_whitespace]
  self.create(attributes)
end