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, ) self.instance_eval do define_singleton_method(:import!) do |csv| CSV.parse(csv) do |row| import_row(row, columns, ) end end define_singleton_method(:import_file!) do |file_name| CSV.foreach(file_name) do |row| import_row(row, columns, ) 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, ) 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 [:remove_whitespace] self.create(attributes) end |