Browse Source

use csv parser in log creator

pull/1208/head
Phil Lee 3 years ago
parent
commit
ad6b731120
  1. 41
      app/services/bulk_upload/lettings/log_creator.rb

41
app/services/bulk_upload/lettings/log_creator.rb

@ -23,46 +23,35 @@ class BulkUpload::Lettings::LogCreator
private private
def csv_parser
@csv_parser ||= BulkUpload::Lettings::CsvParser.new(path:)
end
def row_offset def row_offset
5 csv_parser.row_offset
end end
def col_offset def col_offset
1 csv_parser.col_offset
end end
def row_parsers def row_parsers
@row_parsers ||= body_rows.map do |row| return @row_parsers if @row_parsers
stripped_row = row[col_offset..]
headers = ("field_1".."field_134").to_a
hash = Hash[headers.zip(stripped_row)]
hash[:bulk_upload] = bulk_upload
BulkUpload::Lettings::RowParser.new(hash) @row_parsers = csv_parser.row_parsers
end
end
def body_rows @row_parsers.each do |row_parser|
rows[row_offset..] row_parser.bulk_upload = bulk_upload
end end
def rows @row_parsers
@rows ||= CSV.read(path, row_sep:)
end end
# determine the row seperator from CSV def body_rows
# Windows will use \r\n csv_parser.body_rows
def row_sep
contents = ""
File.open(path, "r") do |f|
contents = f.read
end end
if contents[-2..] == "\r\n" def rows
"\r\n" csv_parser.rows
else
"\n"
end
end end
end end

Loading…
Cancel
Save