func/mock/initializer.go

39 lines
888 B
Go

package mock
import (
"errors"
"fmt"
"strings"
)
type Initializer struct {
SupportedLanguages []string
InitializeInvoked bool
InitializeFn func(name, language, path string) error
}
func NewInitializer() *Initializer {
return &Initializer{
SupportedLanguages: []string{"go"},
InitializeFn: func(string, string, string) error { return nil },
}
}
func (i *Initializer) Initialize(name, language, path string) error {
fmt.Printf("Validating language supported: %v\n", language)
i.InitializeInvoked = true
if !i.supportsLanguage(language) {
return errors.New(fmt.Sprintf("unsupported language '%v'", language))
}
return i.InitializeFn(name, language, path)
}
func (i *Initializer) supportsLanguage(language string) bool {
for _, supported := range i.SupportedLanguages {
if strings.ToLower(language) == supported {
return true
}
}
return false
}