Module: CSVMapper::ClassMethods
- Defined in:
- lib/csvmapper.rb
Instance Method Summary collapse
Instance Method Details
#column(attr, *args, &block) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/csvmapper.rb', line 39 def column(attr, *args, &block) attr = attr.to_s type = args.delete(([String, Float, Integer, Date, DateTime] & args).first) || String source = args.first || attr @_columns[attr] = Column.new(attr, source, type, block) create_accessor(attr) end |
#parse(contents, parser_opts = {}) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/csvmapper.rb', line 18 def parse(contents, parser_opts={}) .merge!(parser_opts) instances = [] parser = FasterCSV.new(contents, ) parser.each do |line| instance = new @_columns.values.each do |column| raw_value = line[column[:source]] value = column_value(raw_value, column[:type], column[:conversion]) instance.send("#{column.attr.to_s}=", value) end instances << instance end instances end |