File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ def file
3737 end
3838
3939 def cycle ( lines )
40- @csv_lines = CSV . parse ( lines . join , @csv_options )
40+ @csv_lines = lines
4141 import_result . add ( batch_import , lines . count )
4242 end
4343
@@ -113,17 +113,20 @@ def header_index(header_key)
113113 def process_file
114114 lines = [ ]
115115 batch_size = options [ :batch_size ] . to_i
116- File . open ( file . path ) do |f |
117- # capture headers if not exist
118- prepare_headers { CSV . parse ( f . readline , @csv_options ) . first }
119- f . each_line do |line |
120- lines << line if line . present?
121- if lines . size == batch_size || f . eof?
122- cycle ( lines )
123- lines = [ ]
124- end
116+
117+ csv = CSV . read ( file . path , @csv_options )
118+
119+ prepare_headers { csv . shift }
120+
121+ csv . each do |line |
122+ lines << line
123+
124+ if lines . size == batch_size
125+ cycle ( lines )
126+ lines = [ ]
125127 end
126128 end
129+
127130 cycle ( lines ) unless lines . blank?
128131 end
129132
You can’t perform that action at this time.
0 commit comments