Browse Source

envexp: turn Expander from interface to struct

Signed-off-by: Alejandro Mery <amery@jpi.io>
v0.2.x
Alejandro Mery 3 years ago
parent
commit
3e2356a3f6
  1. 14
      envexp/expand.go
  2. 2
      envexp/global.go

14
envexp/expand.go

@ -10,34 +10,30 @@ import (
type VarGetter func(key string) string type VarGetter func(key string) string
// A Expander is an object that you can use to Expand strings // A Expander is an object that you can use to Expand strings
type Expander interface { type Expander struct {
Expand(s string) string
}
type expander struct {
get VarGetter get VarGetter
} }
// NewExpander allocates a new Expander using a // NewExpander allocates a new Expander using a
// given VarGetter, or os.Getenv if none is given // given VarGetter, or os.Getenv if none is given
func NewExpander(f VarGetter) Expander { func NewExpander(f VarGetter) *Expander {
if f == nil { if f == nil {
f = os.Getenv f = os.Getenv
} }
return &expander{ return &Expander{
get: f, get: f,
} }
} }
// Get resolves a variable name as the given Expander // Get resolves a variable name as the given Expander
// would do // would do
func (exp *expander) Get(key string) string { func (exp *Expander) Get(key string) string {
return exp.get(key) return exp.get(key)
} }
// Expand expands a string using the VarGetter // Expand expands a string using the VarGetter
// defined for the given Expander // defined for the given Expander
func (exp *expander) Expand(s string) string { func (exp *Expander) Expand(s string) string {
return s return s
} }

2
envexp/global.go

@ -4,7 +4,7 @@ import (
"os" "os"
) )
var envExpander = &expander{ var envExpander = &Expander{
get: os.Getenv, get: os.Getenv,
} }

Loading…
Cancel
Save