Class: Eeml::CsvParserV2

Inherits:
Object show all
Defined in:
lib/eeml/csv_parser_v2.rb

Class Method Summary collapse

Class Method Details

.make_environment_from_csv(csv_content) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/eeml/csv_parser_v2.rb', line 6

def self.make_environment_from_csv(csv_content)
  csv = LightCsv.parse(strip_content(csv_content))
  environment = Environment.new(:csv_version => 'v2')
  environment.private = nil
  csv = strip_content(csv)

  datastreams = csv.collect do |datastream|
    raise(CsvEncodingError, "CSV is invalid. Double check you are properly encoding line breaks.") if datastream.length == 3 && datastream[1].include?('\n')
    raise(CsvEncodingError, "CSV is invalid. Incorrect number of fields.") if datastream.length != 2
    DataStream.new(:value => datastream.last, :identifier => datastream.first)
  end
  environment.add_datastreams(datastreams)

  environment
end