mirror of
				https://github.com/taigrr/yq
				synced 2025-01-18 04:53:17 -08:00 
			
		
		
		
	added EvaluateNodes and EvaluateCandidateNodes to yqlib
This commit is contained in:
		
							parent
							
								
									5fc26e9453
								
							
						
					
					
						commit
						85629af59c
					
				| @ -166,6 +166,24 @@ func NodeToString(node *CandidateNode) string { | |||||||
| 	return fmt.Sprintf(`D%v, P%v, (%v)::%v`, node.Document, node.Path, tag, buf.String()) | 	return fmt.Sprintf(`D%v, P%v, (%v)::%v`, node.Document, node.Path, tag, buf.String()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // EvaluateNodes takes an expression and one or more yaml nodes, returning a list of matching candidate nodes | ||||||
|  | func EvaluateNodes(expression string, nodes ...*yaml.Node) (*list.List, error) { | ||||||
|  | 	inputCandidates := list.New() | ||||||
|  | 	for _, node := range nodes { | ||||||
|  | 		inputCandidates.PushBack(&CandidateNode{Node: node}) | ||||||
|  | 	} | ||||||
|  | 	return EvaluateCandidateNodes(expression, inputCandidates) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // EvaluateCandidateNodes takes an expression and list of candidate nodes, returning a list of matching candidate nodes | ||||||
|  | func EvaluateCandidateNodes(expression string, inputCandidates *list.List) (*list.List, error) { | ||||||
|  | 	node, err := treeCreator.ParsePath(expression) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return treeNavigator.GetMatchingNodes(inputCandidates, node) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func KindString(kind yaml.Kind) string { | func KindString(kind yaml.Kind) string { | ||||||
| 	switch kind { | 	switch kind { | ||||||
| 	case yaml.ScalarNode: | 	case yaml.ScalarNode: | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user