aboutsummaryrefslogtreecommitdiff
path: root/loader_test.go
diff options
context:
space:
mode:
author2026-03-09 23:05:42 +0300
committer2026-03-09 23:05:42 +0300
commit00394a80501960ad26787b5c44435ed5ed67ad84 (patch)
tree672eb918c552c858f32e9533dc3799af6b75769f /loader_test.go
parent'-' sign in words accepted (diff)
downloadconf-00394a80501960ad26787b5c44435ed5ed67ad84.tar.gz
conf-00394a80501960ad26787b5c44435ed5ed67ad84.tar.bz2
conf-00394a80501960ad26787b5c44435ed5ed67ad84.tar.xz
conf-00394a80501960ad26787b5c44435ed5ed67ad84.zip
Полностью переписал библиотеку. Перевёл с EBNF на PEG.v0.1.0
Diffstat (limited to 'loader_test.go')
-rw-r--r--loader_test.go64
1 files changed, 27 insertions, 37 deletions
diff --git a/loader_test.go b/loader_test.go
index 3e16922..3c9a84a 100644
--- a/loader_test.go
+++ b/loader_test.go
@@ -2,50 +2,40 @@ package conf_test
import (
"fmt"
+ "log"
"go.neonxp.ru/conf"
- "go.neonxp.ru/conf/visitor"
)
-func ExampleNew() {
- config := `
- key = "value";
- group "test" {
- key = 123;
+func ExampleLoad() {
+ test := `
+ some directive;
+ group1 param1 {
+ group2 param2 {
+ group3 param3 {
+ key value;
+ }
+ }
}
`
-
- cfg := conf.New()
-
- if err := cfg.Load("example", []byte(config)); err != nil {
- panic(err)
- }
-
- pr := visitor.NewDefault()
- if err := cfg.Process(pr); err != nil {
- panic(err)
- }
-
- val1, err := pr.Get("key")
+ result, err := conf.Load("test", []byte(test))
if err != nil {
- panic(err)
+ log.Fatal(err)
}
- val2, err := pr.Get("group.key")
- if err != nil {
- panic(err)
- }
-
- val3, err := pr.Get("group")
- if err != nil {
- panic(err)
- }
-
- fmt.Println("key =", val1.String())
- fmt.Println("group.key =", val2.String())
- fmt.Println("group args =", val3.String())
- // Output:
- // key = value
- // group.key = 123
- // group args = test
+ fmt.Println(
+ result.Get("group1").
+ Group.Get("group2").
+ Group.Get("group3").
+ Group.Get("key").Value(),
+ ) // → value
+
+ fmt.Println(
+ result.Get("group1").
+ Group.Get("group2").
+ Group.Get("group3").Value(),
+ ) // → param3
+
+ // Output: value
+ // param3
}