Skip to content

Commit 3c3d5cc

Browse files
authored
fix: modified MakeOptCfgsFor to set Names empty if optcfg has no opt name (#62)
1 parent 5ce4186 commit 3c3d5cc

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

example_parse-for_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ func ExampleMakeOptCfgsFor() {
279279
// optCfgs[1].ArgInHelp = <number>
280280
//
281281
// optCfgs[2].StoreKey = Qux
282-
// optCfgs[2].Names = [Qux]
282+
// optCfgs[2].Names = []
283283
// optCfgs[2].HasArg = true
284284
// optCfgs[2].IsArray = false
285285
// optCfgs[2].Defaults = [XXX]
@@ -295,7 +295,7 @@ func ExampleMakeOptCfgsFor() {
295295
// optCfgs[3].ArgInHelp = <array elem>
296296
//
297297
// optCfgs[4].StoreKey = Corge
298-
// optCfgs[4].Names = [Corge]
298+
// optCfgs[4].Names = []
299299
// optCfgs[4].HasArg = true
300300
// optCfgs[4].IsArray = true
301301
// optCfgs[4].Defaults = []

parse-for.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,14 @@ func MakeOptCfgsFor(options any) ([]OptCfg, error) {
100100
for i := 0; i < n; i++ {
101101
optCfgs[i] = newOptCfg(t.Field(i))
102102

103-
setter, err := newValueSetter(optCfgs[i].Names[0], t.Field(i).Name, v.Field(i))
103+
var optName string
104+
if len(optCfgs[i].Names) > 0 {
105+
optName = optCfgs[i].Names[0]
106+
} else {
107+
optName = optCfgs[i].StoreKey
108+
}
109+
110+
setter, err := newValueSetter(optName, t.Field(i).Name, v.Field(i))
104111
if err != nil {
105112
return nil, err
106113
}
@@ -118,7 +125,7 @@ func newOptCfg(fld reflect.StructField) OptCfg {
118125

119126
names := strings.Split(arr[0], ",")
120127
if len(names) == 0 || len(names[0]) == 0 {
121-
names = []string{storeKey}
128+
names = []string{}
122129
}
123130

124131
isArray := false

parse-for_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1773,7 +1773,7 @@ func TestMakeOptCfgsFor_multipleOptsAndMultipleArgs(t *testing.T) {
17731773
assert.False(t, optCfgs[1].IsArray)
17741774
assert.Equal(t, optCfgs[1].Defaults, []string{"99"})
17751775
assert.Equal(t, optCfgs[2].StoreKey, "Qux")
1776-
assert.Equal(t, optCfgs[2].Names, []string{"Qux"})
1776+
assert.Equal(t, optCfgs[2].Names, []string{})
17771777
assert.True(t, optCfgs[2].HasArg)
17781778
assert.False(t, optCfgs[2].IsArray)
17791779
assert.Equal(t, optCfgs[2].Defaults, []string{"XXX"})
@@ -1783,7 +1783,7 @@ func TestMakeOptCfgsFor_multipleOptsAndMultipleArgs(t *testing.T) {
17831783
assert.True(t, optCfgs[3].IsArray)
17841784
assert.Equal(t, optCfgs[3].Defaults, []string{"A", "B", "C"})
17851785
assert.Equal(t, optCfgs[4].StoreKey, "Corge")
1786-
assert.Equal(t, optCfgs[4].Names, []string{"Corge"})
1786+
assert.Equal(t, optCfgs[4].Names, []string{})
17871787
assert.True(t, optCfgs[4].HasArg)
17881788
assert.True(t, optCfgs[4].IsArray)
17891789
assert.Equal(t, optCfgs[4].Defaults, []string(nil))

0 commit comments

Comments
 (0)