Revised after review
* Dropped 'script' support * Improved documentation * Made pathFn members private
This commit is contained in:
+51
@@ -0,0 +1,51 @@
|
||||
// code examples for godoc
|
||||
|
||||
package toml
|
||||
|
||||
import "fmt"
|
||||
|
||||
func ExampleNodeFilterFn_filterExample() {
|
||||
tree, _ := Load(`
|
||||
[struct_one]
|
||||
foo = "foo"
|
||||
bar = "bar"
|
||||
|
||||
[struct_two]
|
||||
baz = "baz"
|
||||
gorf = "gorf"
|
||||
`)
|
||||
|
||||
// create a query that references a user-defined-filter
|
||||
query, _ := CompileQuery("$[?(bazOnly)]")
|
||||
|
||||
// define the filter, and assign it to the query
|
||||
query.SetFilter("bazOnly", func(node interface{}) bool {
|
||||
if tree, ok := node.(*TomlTree); ok {
|
||||
return tree.Has("baz")
|
||||
}
|
||||
return false // reject all other node types
|
||||
})
|
||||
|
||||
// results contain only the 'struct_two' TomlTree
|
||||
query.Execute(tree)
|
||||
}
|
||||
|
||||
func ExampleQuery_queryExample() {
|
||||
config, _ := Load(`
|
||||
[[book]]
|
||||
title = "The Stand"
|
||||
author = "Stephen King"
|
||||
[[book]]
|
||||
title = "For Whom the Bell Tolls"
|
||||
author = "Ernest Hemmingway"
|
||||
[[book]]
|
||||
title = "Neuromancer"
|
||||
author = "William Gibson"
|
||||
`)
|
||||
|
||||
// find and print all the authors in the document
|
||||
authors, _ := config.Query("$.book.author")
|
||||
for _, name := range authors.Values() {
|
||||
fmt.Println(name)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user