Module: SimpleCsvImporter
- Defined in:
- lib/simple_csv_importer.rb,
lib/simple_csv_importer/version.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- VERSION =
'0.0.1'
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/simple_csv_importer.rb', line 5 def self.included(base) base.class_eval do @target_klass = base.to_s.sub(/Importer$/, '') @rules = [] class << self attr_reader :rules, :target_klass end end base.extend ClassMethods end |
Instance Method Details
#load(csv_text) ⇒ Array
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/simple_csv_importer.rb', line 43 def load(csv_text) csv = CSV.parse(csv_text, headers: true) target_class = Object.const_get(self.class.target_klass) csv.map do |row| target = target_class.new self.class.rules.each do |attr_name, processor| target.public_send(:"#{attr_name}=", processor.call(row)) end target end end |