fake.go 1.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
package config

import (
	"errors"
	"strconv"
	"strings"
)

type fakeConfigContainer struct {
	data map[string]string
}

func (c *fakeConfigContainer) getData(key string) string {
	key = strings.ToLower(key)
	return c.data[key]
}

func (c *fakeConfigContainer) Set(key, val string) error {
	key = strings.ToLower(key)
	c.data[key] = val
	return nil
}

func (c *fakeConfigContainer) String(key string) string {
	return c.getData(key)
}

28 29 30 31
func (c *fakeConfigContainer) Strings(key string) []string {
	return strings.Split(c.getData(key), ";")
}

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
func (c *fakeConfigContainer) Int(key string) (int, error) {
	return strconv.Atoi(c.getData(key))
}

func (c *fakeConfigContainer) Int64(key string) (int64, error) {
	return strconv.ParseInt(c.getData(key), 10, 64)
}

func (c *fakeConfigContainer) Bool(key string) (bool, error) {
	return strconv.ParseBool(c.getData(key))
}

func (c *fakeConfigContainer) Float(key string) (float64, error) {
	return strconv.ParseFloat(c.getData(key), 64)
}

func (c *fakeConfigContainer) DIY(key string) (interface{}, error) {
	key = strings.ToLower(key)
	if v, ok := c.data[key]; ok {
		return v, nil
	}
	return nil, errors.New("key not find")
}

var _ ConfigContainer = new(fakeConfigContainer)

func NewFakeConfig() ConfigContainer {
	return &fakeConfigContainer{
		data: make(map[string]string),
	}
}