module CSVHandlers
Public Instance Methods
append_to_csv(file, row)
click to toggle source
# File lib/linsc/csv_handlers.rb, line 14 def append_to_csv(file, row) tries = 10 begin f = CSV.open(file, "a+", headers: row.headers, force_quotes: true) f << row f.close rescue tries -= 1 if tries > 0 retry else puts "Unable to write to file #{file}" puts "Make sure the file exists and is not open in any other programs and try again. If that does not work try restarting your computer, or restarting the project with the -r flag." exit end end end
create_file(f)
click to toggle source
# File lib/linsc/csv_handlers.rb, line 32 def create_file(f) unless File.exist?(f) FileUtils.touch(f) csv = CSV.open(f, "w+") csv << @headers.collect {|x| x && x.encode('utf-8')} csv.close end end
create_file_with_headers(f, headers)
click to toggle source
# File lib/linsc/csv_handlers.rb, line 41 def create_file_with_headers(f, headers) unless File.exist?(f) FileUtils.touch(f) csv = CSV.open(f, "w+") csv << headers.collect {|x| x && x.encode('utf-8')} csv.close end end
create_row(row, headers, encoding = nil)
click to toggle source
# File lib/linsc/csv_handlers.rb, line 2 def create_row(row, headers, encoding = nil) values = [] headers.each do |header| if encoding values << row[header].encode(encoding) if row[header] else values << row[header] end end CSV::Row.new(headers, values) end
get_headers(file)
click to toggle source
# File lib/linsc/csv_handlers.rb, line 50 def get_headers(file) CSV.open(file, headers: true, return_headers: true).shift.headers end