func addArgsFromTable(concept *gauge.Step, conceptName *string, args []string) { for _, arg := range args { concept.Value += " {}" concept.Args = append(concept.Args, &gauge.StepArg{Value: arg, ArgType: gauge.Dynamic, Name: arg}) *conceptName += fmt.Sprintf(" <%s>", arg) } }
func (self *extractor) handleTable(stepInConcept *gauge.Step, step *gauge_messages.Step) { stepInConcept.Value += " {}" specText := self.fileContent + step.GetTable() spec, result := new(parser.SpecParser).Parse(specText, &gauge.ConceptDictionary{}) if !result.Ok { self.errors = append(self.errors, result.ParseError) return } stepArgs := []*gauge.StepArg{spec.Scenarios[0].Steps[0].Args[0]} self.addTableAsParam(step, stepArgs) stepInConcept.Args = append(stepInConcept.Args, stepArgs[0]) }
//Step value is modified when inline table is found to account for the new parameter by appending {} //todo validate headers for dynamic func addInlineTableHeader(step *gauge.Step, token *Token) { step.Value = fmt.Sprintf("%s %s", step.Value, gauge.ParameterPlaceholder) step.HasInlineTable = true step.AddInlineTableHeaders(token.Args) }