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

2
envexp/global.go

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

Loading…
Cancel
Save