Mercurial > gemma
view pkg/common/attributes.go @ 2027:6b9f0fe741dc unify_imports
Removed debris.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 24 Jan 2019 18:23:31 +0100 |
parents | 8eeb0b5eb340 |
children | 74e24ae3205a |
line wrap: on
line source
// This is Free Software under GNU Affero General Public License v >= 3.0 // without warranty, see README.md and license for details. // // SPDX-License-Identifier: AGPL-3.0-or-later // License-Filename: LICENSES/AGPL-3.0.txt // // Copyright (C) 2018 by via donau // – Österreichische Wasserstraßen-Gesellschaft mbH // Software engineering by Intevation GmbH // // Author(s): // * Sascha L. Teichmann <sascha.teichmann@intevation.de> package common import ( "log" "strconv" "strings" "time" ) // Attributes is a map of optional key/value attributes // of a configuration. type Attributes map[string]string // Get fetches a value for given key out of the configuration. // If the key was not found the bool component of the return value // return false. func (ca Attributes) Get(key string) (string, bool) { if ca == nil { return "", false } value, found := ca[key] return value, found } // Bool returns a bool value for a given key. func (ca Attributes) Bool(key string) bool { s, found := ca.Get(key) return found && strings.ToLower(s) == "true" } // Time gives a time.Time for a given key. func (ca Attributes) Time(key string) (time.Time, bool) { s, found := ca.Get(key) if !found { return time.Time{}, false } t, err := time.Parse("2006-01-02T15:04:05", s) if err != nil { log.Printf("error: %v\n", err) return time.Time{}, false } return t, true } func (ca Attributes) Int(key string) (int, bool) { s, found := ca.Get(key) if !found { return 0, false } i, err := strconv.Atoi(s) if err != nil { log.Printf("error: %v\n", err) return 0, false } return i, true } func (ca Attributes) Duration(key string) (time.Duration, bool) { s, found := ca.Get(key) if !found { return 0, false } d, err := time.ParseDuration(s) if err != nil { log.Printf("error: %v\n", err) return 0, false } return d, true }