Sha256: 66a8cec13ef37445e373f0bfb66e6e91d97caa92260fe5e4e647f8692d026ed0
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
module CSVHandlers def create_row(row, headers, encoding = nil) values = [] headers.each do |header| if encoding values << row[header]&.encode(encoding) else values << row[header] end end CSV::Row.new(headers, values) end def append_to_csv(file, row) tries = 3 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 def create_file(f) unless File.exist?(f) FileUtils.touch(f) csv = CSV.open(f, "w+") csv << @headers.collect {|x| x&.encode('utf-8')} csv.close end end def create_file_with_headers(f, headers) unless File.exist?(f) FileUtils.touch(f) csv = CSV.open(f, "w+") csv << headers.collect {|x| x&.encode('utf-8')} csv.close end end def get_headers(file) CSV.open(file, headers: true, return_headers: true).shift.headers end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
linsc-0.0.5 | lib/linsc/csv_handlers.rb |
linsc-0.0.3 | lib/linsc/csv_handlers.rb |
linsc-0.0.2 | lib/linsc/csv_handlers.rb |