diff options
author | Christopher Speller <crspeller@gmail.com> | 2018-05-18 07:32:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-18 07:32:31 -0700 |
commit | d5e1f7e2982c2fcc888ccac550b34095efbee217 (patch) | |
tree | d8cfe7e3f47537cce92b26a1b32b9081f0bd7993 /vendor/github.com/hako/durafmt | |
parent | d3ead7dc8535f8fa5b175686cc1f7669c8b1648b (diff) | |
download | chat-d5e1f7e2982c2fcc888ccac550b34095efbee217.tar.gz chat-d5e1f7e2982c2fcc888ccac550b34095efbee217.tar.bz2 chat-d5e1f7e2982c2fcc888ccac550b34095efbee217.zip |
Upgrading server dependency. (#8807)
Diffstat (limited to 'vendor/github.com/hako/durafmt')
-rw-r--r-- | vendor/github.com/hako/durafmt/README.md | 44 | ||||
-rw-r--r-- | vendor/github.com/hako/durafmt/durafmt.go | 31 |
2 files changed, 72 insertions, 3 deletions
diff --git a/vendor/github.com/hako/durafmt/README.md b/vendor/github.com/hako/durafmt/README.md index 128819282..6b26faaf3 100644 --- a/vendor/github.com/hako/durafmt/README.md +++ b/vendor/github.com/hako/durafmt/README.md @@ -33,7 +33,7 @@ The above seems very easy to read, unless your duration looks like this: package main import ( - "fmt" + "fmt" "github.com/hako/durafmt" ) @@ -47,6 +47,28 @@ func main() { } ``` +### durafmt.ParseStringShort() + +Version of `durafmt.ParseString()` that only returns the first part of the duration string. + +```go +package main + +import ( + "fmt" + "github.com/hako/durafmt" +) + +func main() { + duration, err := durafmt.ParseStringShort("354h22m3.24s") + if err != nil { + fmt.Println(err) + } + fmt.Println(duration) // 2 weeks + // duration.String() // String short representation. "2 weeks" +} +``` + ### durafmt.Parse() ```go @@ -65,6 +87,26 @@ func main() { } ``` +### durafmt.ParseShort() + +Version of `durafmt.Parse()` that only returns the first part of the duration string. + +```go +package main + +import ( + "fmt" + "time" + "github.com/hako/durafmt" +) + +func main() { + timeduration := (354 * time.Hour) + (22 * time.Minute) + (3 * time.Second) + duration := durafmt.ParseShort(timeduration).String() + fmt.Println(duration) // 2 weeks +} +``` + # Contributing Contributions are welcome! Fork this repo and add your changes and submit a PR. diff --git a/vendor/github.com/hako/durafmt/durafmt.go b/vendor/github.com/hako/durafmt/durafmt.go index a7e0a48c2..730237d57 100644 --- a/vendor/github.com/hako/durafmt/durafmt.go +++ b/vendor/github.com/hako/durafmt/durafmt.go @@ -16,12 +16,19 @@ var ( type Durafmt struct { duration time.Duration input string // Used as reference. + short bool } // Parse creates a new *Durafmt struct, returns error if input is invalid. func Parse(dinput time.Duration) *Durafmt { input := dinput.String() - return &Durafmt{dinput, input} + return &Durafmt{dinput, input, false} +} + +// ParseShort creates a new *Durafmt struct, short form, returns error if input is invalid. +func ParseShort(dinput time.Duration) *Durafmt { + input := dinput.String() + return &Durafmt{dinput, input, true} } // ParseString creates a new *Durafmt struct from a string. @@ -34,7 +41,20 @@ func ParseString(input string) (*Durafmt, error) { if err != nil { return nil, err } - return &Durafmt{duration, input}, nil + return &Durafmt{duration, input, false}, nil +} + +// ParseStringShort creates a new *Durafmt struct from a string, short form +// returns an error if input is invalid. +func ParseStringShort(input string) (*Durafmt, error) { + if input == "0" || input == "-0" { + return nil, errors.New("durafmt: missing unit in duration " + input) + } + duration, err := time.ParseDuration(input) + if err != nil { + return nil, err + } + return &Durafmt{duration, input, true}, nil } // String parses d *Durafmt into a human readable duration. @@ -116,5 +136,12 @@ func (d *Durafmt) String() string { } // trim any remaining spaces. duration = strings.TrimSpace(duration) + + // if more than 2 spaces present return the first 2 strings + // if short version is requested + if d.short { + duration = strings.Join(strings.Split(duration, " ")[:2], " ") + } + return duration } |