GenericFlag.ValueFromContext() as convenient accessor

This commit is contained in:
Tilo Prütz 2022-04-22 16:10:09 +02:00
parent 2f92fc644c
commit 8bd5fb2390
2 changed files with 13 additions and 0 deletions

View File

@ -104,6 +104,11 @@ func (f GenericFlag) Apply(set *flag.FlagSet) error {
return nil return nil
} }
// ValueFromContext returns the flags value in the given Context.
func (f *GenericFlag) ValueFromContext(ctx *Context) interface{} {
return ctx.Generic(f.Name)
}
// Generic looks up the value of a local GenericFlag, returns // Generic looks up the value of a local GenericFlag, returns
// nil if not found // nil if not found
func (c *Context) Generic(name string) interface{} { func (c *Context) Generic(name string) interface{} {

View File

@ -1173,6 +1173,14 @@ func TestGenericFlagApply_SetsAllNames(t *testing.T) {
expect(t, err, nil) expect(t, err, nil)
} }
func TestGenericFlagValueFromContext(t *testing.T) {
set := flag.NewFlagSet("test", 0)
set.Var(&Parser{"abc", "def"}, "myflag", "doc")
ctx := NewContext(nil, set, nil)
f := &GenericFlag{Name: "myflag"}
expect(t, f.ValueFromContext(ctx), &Parser{"abc", "def"})
}
func TestParseMultiString(t *testing.T) { func TestParseMultiString(t *testing.T) {
_ = (&App{ _ = (&App{
Flags: []Flag{ Flags: []Flag{