No commit activity in last 3 years
No release in over 3 years
Convert CSV data to instances of model and import to database easily.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.16
~> 10.0
~> 3.0
 Project Readme

SimpleCsvImporter

Convert CSV data to instances of model and import to database easily.

Usage

  1. prepare model class
class User
  attr_accessor :email, :name, :sex, :age
end
  1. create importer
class UserImporter
  include SimpleCsvImporter

  assign :email, 'Email'
  assign :name, ->(row) { "#{row['First Name']} #{row['Last Name']}" }
  assign :sex, 'Sex' do |sex|
    sexes = { 'Male' => 1, 'Female' => 2 }
    sexes[sex]
  end
  assign :age, 'Age', &:to_i
end
  1. load csv and convert to instances of the model
importer = UserImporter.new
csv_text = <<-TEXT
Email,First Name,Last Name,Sex,Age,
alice@example.com,Alice,Abbot,Female,20
bob@mail.com,Bob,Brown,Male,25
TEXT

importer.load(csv_text)
# =>
#[
#  #<User:0x01 @age=20, @email="alice@example.com", @name="Alice Abbot", @sex=2>,
#  #<User:0x02 @age=25, @email="bob@mail.com", @name="Bob Brown", @sex=1>
#]