diff options
author | Martin Kraft <martinkraft@gmail.com> | 2018-05-22 12:54:00 -0400 |
---|---|---|
committer | Martin Kraft <martinkraft@gmail.com> | 2018-05-22 12:54:00 -0400 |
commit | 4c683aff7627040ff811f065848a820b2cb19d59 (patch) | |
tree | 668061e8acfd8827fd02bab18a998b7986944296 /vendor/github.com/hako/durafmt/durafmt.go | |
parent | eb78d273f39202046fa71555a5a19b0ec8a95cb3 (diff) | |
parent | 1af1bce6199597bb2d41ddcdc00ef0f28a73c83e (diff) | |
download | chat-4c683aff7627040ff811f065848a820b2cb19d59.tar.gz chat-4c683aff7627040ff811f065848a820b2cb19d59.tar.bz2 chat-4c683aff7627040ff811f065848a820b2cb19d59.zip |
Merge remote-tracking branch 'origin/master' into advanced-permissions-phase-2
Diffstat (limited to 'vendor/github.com/hako/durafmt/durafmt.go')
-rw-r--r-- | vendor/github.com/hako/durafmt/durafmt.go | 31 |
1 files changed, 29 insertions, 2 deletions
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 } |