require 'json' require 'csv' def main(orchAttr, inputMap) returnMap = {} # Add logic here # stringVal = inputMap["inputStringVal"] # numVal = inputMap["inputNumVal"].to_f # # Get the File Name from Inputs fileName = inputMap["fileName"] # Get the fully qualified name of the file in the temp directory tempFileName = orchAttr.getTempFileName(fileName); fullFileName = orchAttr.getUniqueTempFileName(fileName); #orchAttr.writeWarn("Ruby Warn ") #orchAttr.writeDebug("Ruby Debug ") counts = Hash.new(0) rowCount = 0 # loop through csv and count rows CSV.foreach(tempFileName) do |row| rowCount += 1 end # remove header count rowCount = rowCount -1 delimiters = [',', ';', "\t", '|',':'] counts = Hash.new(0) rowCount = 0 File.open(tempFileName).each do |row| delimiters.each { |sep| counts[sep] += row.count(sep) } end delimiter = counts.max_by { |_, v| v }&.first || ',' returnMap["fileName"] = fileName returnMap["fullFileName"] = fullFileName returnMap["rowCount"] = rowCount returnMap["delimiter"] = delimiter #returnMap["Output String"] = stringVal #returnMap["Output Attrib"] = "AB" + orchAttr.getAddressNumber().to_s return returnMap end