update definition group
This commit is contained in:
@@ -16,7 +16,7 @@ type Execute func(w io.Writer, vi view.View, rnd Rendering) error
|
||||
|
||||
var randders = map[reflect.Type]Execute{
|
||||
reflect.TypeFor[*definition.Definition](): Template(defTpl),
|
||||
reflect.TypeFor[group.Group](): Template(groupTpl),
|
||||
reflect.TypeFor[*group.Group](): Template(groupTpl),
|
||||
reflect.TypeFor[option.Option](): Template(optTpl),
|
||||
reflect.TypeFor[proto.Proto](): Template(protoTpl),
|
||||
}
|
||||
|
||||
@@ -8,14 +8,14 @@ import (
|
||||
|
||||
var _ config.Group = New("", "")
|
||||
|
||||
func New(name, desc string, opts ...config.Option) Group {
|
||||
func New(name, desc string, opts ...config.Option) *Group {
|
||||
group := Group{
|
||||
name: name,
|
||||
opts: opts,
|
||||
Params: param.New(option.Description(desc)),
|
||||
}
|
||||
|
||||
return group
|
||||
return &group
|
||||
}
|
||||
|
||||
type Group struct {
|
||||
@@ -25,10 +25,21 @@ type Group struct {
|
||||
opts []config.Option
|
||||
}
|
||||
|
||||
func (g Group) Name() string {
|
||||
func (g *Group) Name() string {
|
||||
return g.name
|
||||
}
|
||||
|
||||
func (g Group) Options() []config.Option {
|
||||
func (g *Group) Options() []config.Option {
|
||||
return g.opts
|
||||
}
|
||||
|
||||
func (g *Group) Add(opts ...config.Option) {
|
||||
g.opts = append(g.opts, opts...)
|
||||
}
|
||||
|
||||
func (g *Group) With(opts ...param.Option) *Group {
|
||||
group := New(g.Name(), "")
|
||||
group.Params = param.Chain(g.Params, param.New(opts...))
|
||||
|
||||
return group
|
||||
}
|
||||
|
||||
29
definition/group/group_test.go
Normal file
29
definition/group/group_test.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package group_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"gitoa.ru/go-4devs/config/definition/group"
|
||||
"gitoa.ru/go-4devs/config/definition/option"
|
||||
"gitoa.ru/go-4devs/config/test/require"
|
||||
)
|
||||
|
||||
func TestGroupAdd(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var gr group.Group
|
||||
|
||||
gr.Add(group.New("test", "test"))
|
||||
require.Truef(t, len(gr.Options()) == 1, "len(%v) != 1", len(gr.Options()))
|
||||
}
|
||||
|
||||
func TestGroupWith(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
const descrition = "group description"
|
||||
|
||||
gr := group.New("test", "test desc")
|
||||
gr = gr.With(option.Description(descrition))
|
||||
|
||||
require.Equal(t, descrition, option.DataDescription(gr))
|
||||
}
|
||||
Reference in New Issue
Block a user