From 92d84f6633767830ed964ebab8c3b94c77663394 Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Tue, 10 Mar 2026 14:44:50 +0300 Subject: =?UTF-8?q?=D0=9E=D1=82=D0=BF=D0=BE=D0=BB=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=20=D0=B1=D0=B8=D0=B1=D0=BB=D0=B8=D0=BE=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D1=83,=20=D1=87=D1=82=D0=BE=D0=B1=D1=8B=20=D0=B2=20?= =?UTF-8?q?=D0=B8=D0=B4=D0=B5=D0=B0=D0=BB=D0=B5=20=D0=B1=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D1=88=D0=B5=20=D0=B5=D1=91=20=D0=BD=D0=B5=20=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=8F=D1=82=D1=8C=20=D0=B4=D0=BE=D0=BB=D0=B3=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B3=D0=BE=D0=B4=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- loader_test.go | 90 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 67 insertions(+), 23 deletions(-) (limited to 'loader_test.go') diff --git a/loader_test.go b/loader_test.go index 3c9a84a..e2d7e48 100644 --- a/loader_test.go +++ b/loader_test.go @@ -1,41 +1,85 @@ +// Package conf_test tests. +// +// This file is part of conf library. +// Copyright (C) 2026 Alexander NeonXP Kiryukhin +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . package conf_test import ( "fmt" - "log" "go.neonxp.ru/conf" ) -func ExampleLoad() { - test := ` - some directive; - group1 param1 { - group2 param2 { - group3 param3 { - key value; - } - } - } - ` - result, err := conf.Load("test", []byte(test)) +func ExampleLoadFile() { + result, err := conf.LoadFile("./example.conf") if err != nil { - log.Fatal(err) + panic("\n" + err.Error()) } - fmt.Println( + out( result.Get("group1"). - Group.Get("group2"). - Group.Get("group3"). - Group.Get("key").Value(), + Group().Get("group2"). + Group().Get("group3"). + Group().Get("key").Value(), ) // → value + out( + result.Get("group1"). + Group().Get("group2"). + Group().Get("group3"). + Group().Get("int_key").Value(), + ) // → 123 + out( + result.Get("group1"). + Group().Get("group2"). + Group().Get("group3"). + Group().Get("float_key").Value(), + ) // → 123.321 + out( + result.Get("group1"). + Group().Get("group2"). + Group().Get("group3"). + Group().Get("bool_key").Value(), + ) // → true - fmt.Println( + out( result.Get("group1"). - Group.Get("group2"). - Group.Get("group3").Value(), + Group().Get("group2"). + Group().Get("group3").Value(), ) // → param3 - // Output: value - // param3 + out( + result.Get("group1"). + Group().Get("group2"). + Group().Get("external_vars"). + StringExt(" ", func(key string) (string, bool) { + if key == "EXTERNAL_VAR" { + return "external variable", true + } + return "unknnown var", false + }), + ) // → Concatenate with external variable and integer 123 + + // Output: value (string) + // 123 (int) + // 123.321 (float64) + // true (bool) + // param3 (model.Ident) + // Concatenate with external variable and integer 123 (string) +} + +func out(a any) { + fmt.Printf("%v (%T)\n", a, a) } -- cgit v1.2.3