func PerformRephraseRefactoring(oldStep, newStep string, startChan *runner.StartChannels) *refactoringResult { defer killRunner(startChan) if newStep == oldStep { return &refactoringResult{Success: true} } agent, err := getRefactorAgent(oldStep, newStep, startChan) if err != nil { return rephraseFailure(err.Error()) } result := &refactoringResult{Success: true, Errors: make([]string, 0), warnings: make([]string, 0)} specs, specParseResults := parser.FindSpecs(filepath.Join(config.ProjectRoot, common.SpecsDirectoryName), &parser.ConceptDictionary{}) addErrorsAndWarningsToRefactoringResult(result, specParseResults...) if !result.Success { return result } conceptDictionary, parseResult := parser.CreateConceptsDictionary(false) addErrorsAndWarningsToRefactoringResult(result, parseResult) if !result.Success { return result } refactorResult := agent.performRefactoringOn(specs, conceptDictionary) refactorResult.warnings = append(refactorResult.warnings, result.warnings...) return refactorResult }
func ExecuteSpecs(inParallel bool, args []string) { env.LoadEnv(false) conceptsDictionary, conceptParseResult := parser.CreateConceptsDictionary(false) parser.HandleParseResult(conceptParseResult) specsToExecute, specsSkipped := filter.GetSpecsToExecute(conceptsDictionary, args) if len(specsToExecute) == 0 { printExecutionStatus(nil, 0) } parallelInfo := ¶llelInfo{inParallel: inParallel, numberOfStreams: NumberOfExecutionStreams} if !parallelInfo.isValid() { os.Exit(1) } manifest, err := manifest.ProjectManifest() if err != nil { execLogger.CriticalError(err) } runner := startApi() validateSpecs(manifest, specsToExecute, runner, conceptsDictionary) pluginHandler := plugin.StartPlugins(manifest) execution := newExecution(manifest, specsToExecute, runner, pluginHandler, parallelInfo, execLogger.Current()) result := execution.start() execution.finish() exitCode := printExecutionStatus(result, specsSkipped) os.Exit(exitCode) }
func parseSpecs(args []string) ([]*parser.Specification, *parser.ConceptDictionary) { conceptsDictionary, conceptParseResult := parser.CreateConceptsDictionary(false) parser.HandleParseResult(conceptParseResult) specsToExecute, _ := filter.GetSpecsToExecute(conceptsDictionary, args) if len(specsToExecute) == 0 { printExecutionStatus(nil, &validationErrMaps{}) } return specsToExecute, conceptsDictionary }
func parseSpecs(args []string) ([]*gauge.Specification, *gauge.ConceptDictionary) { conceptsDictionary, conceptParseResult := parser.CreateConceptsDictionary(false, args) parser.HandleParseResult(conceptParseResult) specsToExecute, _ := filter.GetSpecsToExecute(conceptsDictionary, args) if len(specsToExecute) == 0 { logger.Info("No specifications found in %s.", strings.Join(args, ", ")) os.Exit(0) } return specsToExecute, conceptsDictionary }
func PerformRephraseRefactoring(oldStep, newStep string, startChan *runner.StartChannels, specDirs []string) *refactoringResult { defer killRunner(startChan) if newStep == oldStep { return &refactoringResult{Success: true} } agent, err := getRefactorAgent(oldStep, newStep, startChan) if err != nil { return rephraseFailure(err.Error()) } result := &refactoringResult{Success: true, Errors: make([]string, 0), warnings: make([]string, 0)} var specs []*gauge.Specification var specParseResults []*parser.ParseResult for _, dir := range specDirs { specFiles := util.GetSpecFiles(filepath.Join(config.ProjectRoot, dir)) specSlice, specParseResultsSlice := parser.ParseSpecFiles(specFiles, &gauge.ConceptDictionary{}) specs = append(specs, specSlice...) specParseResults = append(specParseResults, specParseResultsSlice...) } addErrorsAndWarningsToRefactoringResult(result, specParseResults...) if !result.Success { return result } conceptDictionary, parseResult := parser.CreateConceptsDictionary(false, specDirs) addErrorsAndWarningsToRefactoringResult(result, parseResult) if !result.Success { return result } refactorResult := agent.performRefactoringOn(specs, conceptDictionary) refactorResult.warnings = append(refactorResult.warnings, result.warnings...) return refactorResult }
func (s *SpecInfoGatherer) createConceptsDictionary() { var result *parser.ParseResult s.conceptDictionary, result = parser.CreateConceptsDictionary(true) s.handleParseFailures([]*parser.ParseResult{result}) }
func (s *SpecInfoGatherer) getParsedConcepts() map[string]*gauge.Concept { var result *parser.ParseResult s.conceptDictionary, result = parser.CreateConceptsDictionary(true) s.handleParseFailures([]*parser.ParseResult{result}) return s.conceptDictionary.ConceptsMap }