mirror of
				https://github.com/taigrr/yq
				synced 2025-01-18 04:53:17 -08:00 
			
		
		
		
	Removed global vars
This commit is contained in:
		
							parent
							
								
									7b7ab70286
								
							
						
					
					
						commit
						f17cbfd007
					
				| @ -35,11 +35,11 @@ func (e *allAtOnceEvaluator) EvaluateNodes(expression string, nodes ...*yaml.Nod | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (e *allAtOnceEvaluator) EvaluateCandidateNodes(expression string, inputCandidates *list.List) (*list.List, error) { | func (e *allAtOnceEvaluator) EvaluateCandidateNodes(expression string, inputCandidates *list.List) (*list.List, error) { | ||||||
| 	node, err := treeCreator.ParsePath(expression) | 	node, err := e.treeCreator.ParsePath(expression) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 	return treeNavigator.GetMatchingNodes(inputCandidates, node) | 	return e.treeNavigator.GetMatchingNodes(inputCandidates, node) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (e *allAtOnceEvaluator) EvaluateFiles(expression string, filenames []string, printer Printer) error { | func (e *allAtOnceEvaluator) EvaluateFiles(expression string, filenames []string, printer Printer) error { | ||||||
|  | |||||||
| @ -30,7 +30,7 @@ func testScenario(t *testing.T, s *expressionScenario) { | |||||||
| 	var results *list.List | 	var results *list.List | ||||||
| 	var err error | 	var err error | ||||||
| 
 | 
 | ||||||
| 	node, err := treeCreator.ParsePath(s.expression) | 	node, err := NewPathTreeCreator().ParsePath(s.expression) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Error(fmt.Errorf("Error parsing expression %v of %v: %v", s.expression, s.description, err)) | 		t.Error(fmt.Errorf("Error parsing expression %v of %v: %v", s.expression, s.description, err)) | ||||||
| 		return | 		return | ||||||
| @ -66,7 +66,7 @@ func testScenario(t *testing.T, s *expressionScenario) { | |||||||
| 		os.Setenv("myenv", s.environmentVariable) | 		os.Setenv("myenv", s.environmentVariable) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	results, err = treeNavigator.GetMatchingNodes(inputs, node) | 	results, err = NewDataTreeNavigator().GetMatchingNodes(inputs, node) | ||||||
| 
 | 
 | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Error(fmt.Errorf("%v: %v", err, s.expression)) | 		t.Error(fmt.Errorf("%v: %v", err, s.expression)) | ||||||
| @ -110,7 +110,7 @@ func formatYaml(yaml string, filename string) string { | |||||||
| 	var output bytes.Buffer | 	var output bytes.Buffer | ||||||
| 	printer := NewPrinter(bufio.NewWriter(&output), false, true, false, 2, true) | 	printer := NewPrinter(bufio.NewWriter(&output), false, true, false, 2, true) | ||||||
| 
 | 
 | ||||||
| 	node, err := treeCreator.ParsePath(".. style= \"\"") | 	node, err := NewPathTreeCreator().ParsePath(".. style= \"\"") | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
| @ -219,7 +219,7 @@ func documentOutput(t *testing.T, w *bufio.Writer, s expressionScenario, formatt | |||||||
| 	var err error | 	var err error | ||||||
| 	printer := NewPrinter(bufio.NewWriter(&output), false, true, false, 2, true) | 	printer := NewPrinter(bufio.NewWriter(&output), false, true, false, 2, true) | ||||||
| 
 | 
 | ||||||
| 	node, err := treeCreator.ParsePath(s.expression) | 	node, err := NewPathTreeCreator().ParsePath(s.expression) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Error(fmt.Errorf("Error parsing expression %v of %v: %v", s.expression, s.description, err)) | 		t.Error(fmt.Errorf("Error parsing expression %v of %v: %v", s.expression, s.description, err)) | ||||||
| 		return | 		return | ||||||
| @ -252,7 +252,7 @@ func documentOutput(t *testing.T, w *bufio.Writer, s expressionScenario, formatt | |||||||
| 
 | 
 | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	results, err := treeNavigator.GetMatchingNodes(inputs, node) | 	results, err := NewDataTreeNavigator().GetMatchingNodes(inputs, node) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Error(err, s.expression) | 		t.Error(err, s.expression) | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -7,36 +7,36 @@ import ( | |||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func TestPathTreeNoArgsForTwoArgOp(t *testing.T) { | func TestPathTreeNoArgsForTwoArgOp(t *testing.T) { | ||||||
| 	_, err := treeCreator.ParsePath("=") | 	_, err := NewPathTreeCreator().ParsePath("=") | ||||||
| 	test.AssertResultComplex(t, "'=' expects 2 args but there is 0", err.Error()) | 	test.AssertResultComplex(t, "'=' expects 2 args but there is 0", err.Error()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestPathTreeOneLhsArgsForTwoArgOp(t *testing.T) { | func TestPathTreeOneLhsArgsForTwoArgOp(t *testing.T) { | ||||||
| 	_, err := treeCreator.ParsePath(".a =") | 	_, err := NewPathTreeCreator().ParsePath(".a =") | ||||||
| 	test.AssertResultComplex(t, "'=' expects 2 args but there is 1", err.Error()) | 	test.AssertResultComplex(t, "'=' expects 2 args but there is 1", err.Error()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestPathTreeOneRhsArgsForTwoArgOp(t *testing.T) { | func TestPathTreeOneRhsArgsForTwoArgOp(t *testing.T) { | ||||||
| 	_, err := treeCreator.ParsePath("= .a") | 	_, err := NewPathTreeCreator().ParsePath("= .a") | ||||||
| 	test.AssertResultComplex(t, "'=' expects 2 args but there is 1", err.Error()) | 	test.AssertResultComplex(t, "'=' expects 2 args but there is 1", err.Error()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestPathTreeTwoArgsForTwoArgOp(t *testing.T) { | func TestPathTreeTwoArgsForTwoArgOp(t *testing.T) { | ||||||
| 	_, err := treeCreator.ParsePath(".a = .b") | 	_, err := NewPathTreeCreator().ParsePath(".a = .b") | ||||||
| 	test.AssertResultComplex(t, nil, err) | 	test.AssertResultComplex(t, nil, err) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestPathTreeNoArgsForOneArgOp(t *testing.T) { | func TestPathTreeNoArgsForOneArgOp(t *testing.T) { | ||||||
| 	_, err := treeCreator.ParsePath("explode") | 	_, err := NewPathTreeCreator().ParsePath("explode") | ||||||
| 	test.AssertResultComplex(t, "'explode' expects 1 arg but received none", err.Error()) | 	test.AssertResultComplex(t, "'explode' expects 1 arg but received none", err.Error()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestPathTreeOneArgForOneArgOp(t *testing.T) { | func TestPathTreeOneArgForOneArgOp(t *testing.T) { | ||||||
| 	_, err := treeCreator.ParsePath("explode(.)") | 	_, err := NewPathTreeCreator().ParsePath("explode(.)") | ||||||
| 	test.AssertResultComplex(t, nil, err) | 	test.AssertResultComplex(t, nil, err) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestPathTreeExtraArgs(t *testing.T) { | func TestPathTreeExtraArgs(t *testing.T) { | ||||||
| 	_, err := treeCreator.ParsePath("sortKeys(.) explode(.)") | 	_, err := NewPathTreeCreator().ParsePath("sortKeys(.) explode(.)") | ||||||
| 	test.AssertResultComplex(t, "expected end of expression but found 'explode', please check expression syntax", err.Error()) | 	test.AssertResultComplex(t, "expected end of expression but found 'explode', please check expression syntax", err.Error()) | ||||||
| } | } | ||||||
|  | |||||||
| @ -24,6 +24,7 @@ type resultsPrinter struct { | |||||||
| 	previousDocIndex   uint | 	previousDocIndex   uint | ||||||
| 	previousFileIndex  int | 	previousFileIndex  int | ||||||
| 	printedMatches     bool | 	printedMatches     bool | ||||||
|  | 	treeNavigator      DataTreeNavigator | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func NewPrinter(writer io.Writer, outputToJSON bool, unwrapScalar bool, colorsEnabled bool, indent int, printDocSeparators bool) Printer { | func NewPrinter(writer io.Writer, outputToJSON bool, unwrapScalar bool, colorsEnabled bool, indent int, printDocSeparators bool) Printer { | ||||||
| @ -35,6 +36,7 @@ func NewPrinter(writer io.Writer, outputToJSON bool, unwrapScalar bool, colorsEn | |||||||
| 		indent:             indent, | 		indent:             indent, | ||||||
| 		printDocSeparators: printDocSeparators, | 		printDocSeparators: printDocSeparators, | ||||||
| 		firstTimePrinting:  true, | 		firstTimePrinting:  true, | ||||||
|  | 		treeNavigator:      NewDataTreeNavigator(), | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -76,7 +78,7 @@ func (p *resultsPrinter) PrintResults(matchingNodes *list.List) error { | |||||||
| 	if p.outputToJSON { | 	if p.outputToJSON { | ||||||
| 		explodeOp := Operation{OperationType: explodeOpType} | 		explodeOp := Operation{OperationType: explodeOpType} | ||||||
| 		explodeNode := PathTreeNode{Operation: &explodeOp} | 		explodeNode := PathTreeNode{Operation: &explodeOp} | ||||||
| 		matchingNodes, err = treeNavigator.GetMatchingNodes(matchingNodes, &explodeNode) | 		matchingNodes, err = p.treeNavigator.GetMatchingNodes(matchingNodes, &explodeNode) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|  | |||||||
| @ -28,7 +28,7 @@ func NewStreamEvaluator() StreamEvaluator { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (s *streamEvaluator) EvaluateNew(expression string, printer Printer) error { | func (s *streamEvaluator) EvaluateNew(expression string, printer Printer) error { | ||||||
| 	node, err := treeCreator.ParsePath(expression) | 	node, err := s.treeCreator.ParsePath(expression) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| @ -41,7 +41,7 @@ func (s *streamEvaluator) EvaluateNew(expression string, printer Printer) error | |||||||
| 	inputList := list.New() | 	inputList := list.New() | ||||||
| 	inputList.PushBack(candidateNode) | 	inputList.PushBack(candidateNode) | ||||||
| 
 | 
 | ||||||
| 	matches, errorParsing := treeNavigator.GetMatchingNodes(inputList, node) | 	matches, errorParsing := s.treeNavigator.GetMatchingNodes(inputList, node) | ||||||
| 	if errorParsing != nil { | 	if errorParsing != nil { | ||||||
| 		return errorParsing | 		return errorParsing | ||||||
| 	} | 	} | ||||||
| @ -50,7 +50,7 @@ func (s *streamEvaluator) EvaluateNew(expression string, printer Printer) error | |||||||
| 
 | 
 | ||||||
| func (s *streamEvaluator) EvaluateFiles(expression string, filenames []string, printer Printer) error { | func (s *streamEvaluator) EvaluateFiles(expression string, filenames []string, printer Printer) error { | ||||||
| 
 | 
 | ||||||
| 	node, err := treeCreator.ParsePath(expression) | 	node, err := s.treeCreator.ParsePath(expression) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| @ -97,7 +97,7 @@ func (s *streamEvaluator) Evaluate(filename string, reader io.Reader, node *Path | |||||||
| 		inputList := list.New() | 		inputList := list.New() | ||||||
| 		inputList.PushBack(candidateNode) | 		inputList.PushBack(candidateNode) | ||||||
| 
 | 
 | ||||||
| 		matches, errorParsing := treeNavigator.GetMatchingNodes(inputList, node) | 		matches, errorParsing := s.treeNavigator.GetMatchingNodes(inputList, node) | ||||||
| 		if errorParsing != nil { | 		if errorParsing != nil { | ||||||
| 			return errorParsing | 			return errorParsing | ||||||
| 		} | 		} | ||||||
|  | |||||||
| @ -9,9 +9,6 @@ import ( | |||||||
| 	yaml "gopkg.in/yaml.v3" | 	yaml "gopkg.in/yaml.v3" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var treeNavigator = NewDataTreeNavigator() |  | ||||||
| var treeCreator = NewPathTreeCreator() |  | ||||||
| 
 |  | ||||||
| func readStream(filename string) (io.Reader, error) { | func readStream(filename string) (io.Reader, error) { | ||||||
| 	if filename == "-" { | 	if filename == "-" { | ||||||
| 		return bufio.NewReader(os.Stdin), nil | 		return bufio.NewReader(os.Stdin), nil | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user