github.com/getgauge/gauge@v1.6.9/parser/tableParser.go (about) 1 /*---------------------------------------------------------------- 2 * Copyright (c) ThoughtWorks, Inc. 3 * Licensed under the Apache License, Version 2.0 4 * See LICENSE in the project root for license information. 5 *----------------------------------------------------------------*/ 6 7 package parser 8 9 import ( 10 "encoding/csv" 11 "os" 12 "strings" 13 14 "github.com/getgauge/gauge/env" 15 "github.com/getgauge/gauge/gauge" 16 ) 17 18 func convertCsvToTable(csvContents string) (*gauge.Table, error) { 19 r := csv.NewReader(strings.NewReader(csvContents)) 20 var de = os.Getenv(env.CsvDelimiter) 21 if de != "" { 22 r.Comma = []rune(os.Getenv(env.CsvDelimiter))[0] 23 } 24 r.Comment = '#' 25 lines, err := r.ReadAll() 26 if err != nil { 27 return nil, err 28 } 29 table := new(gauge.Table) 30 for i, line := range lines { 31 if i == 0 { 32 table.AddHeaders(line) 33 } else { 34 table.AddRowValues(table.CreateTableCells(line)) 35 } 36 } 37 return table, nil 38 }