Better recursive decent docs

This commit is contained in:
Mike Farah 2021-01-10 11:27:18 +11:00
parent 8027f4c568
commit a0e1f65b20
3 changed files with 12 additions and 10 deletions

View File

@ -33,6 +33,8 @@ frog
```
## Recursively find nodes with keys
Note that this example has wrapped the expression in `[]` to show that there are two matches returned. You do not have to wrap in `[]` in your path expression.
Given a sample.yml file of:
```yaml
a:
@ -43,16 +45,16 @@ a:
```
then
```bash
yq eval '.. | select(has("name"))' sample.yml
yq eval '[.. | select(has("name"))]' sample.yml
```
will output
```yaml
name: frog
b:
name: blog
- name: frog
b:
name: blog
age: 12
- name: blog
age: 12
name: blog
age: 12
```
## Recursively find nodes with values

View File

@ -64,11 +64,11 @@ var recursiveDescentOperatorScenarios = []expressionScenario{
},
{
description: "Recursively find nodes with keys",
subdescription: "Note that this example has wrapped the expression in `[]` to show that there are two matches returned. You do not have to wrap in `[]` in your path expression.",
document: `{a: {name: frog, b: {name: blog, age: 12}}}`,
expression: `.. | select(has("name"))`,
expression: `[.. | select(has("name"))]`,
expected: []string{
"D0, P[a], (!!map)::{name: frog, b: {name: blog, age: 12}}\n",
"D0, P[a b], (!!map)::{name: blog, age: 12}\n",
"D0, P[a], (!!seq)::- {name: frog, b: {name: blog, age: 12}}\n- {name: blog, age: 12}\n",
},
},
{
@ -233,5 +233,5 @@ func TestRecursiveDescentOperatorScenarios(t *testing.T) {
for _, tt := range recursiveDescentOperatorScenarios {
testScenario(t, &tt)
}
documentScenarios(t, "Recursive Descent", recursiveDescentOperatorScenarios)
documentScenarios(t, "Recursive Descent (Glob)", recursiveDescentOperatorScenarios)
}