summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/jehiah
diff options
context:
space:
mode:
authorDavid Lu <david.lu97@outlook.com>2016-09-06 18:51:27 -0400
committerenahum <nahumhbl@gmail.com>2016-09-06 19:51:27 -0300
commit51501f920c092791c7d83ac7067874547a37c96a (patch)
tree8665cdc82c4fa99ba5c2b6743c66e0912fd53ddb /vendor/github.com/jehiah
parent47d77d258961f95f4348b4745da062c08731b283 (diff)
downloadchat-51501f920c092791c7d83ac7067874547a37c96a.tar.gz
chat-51501f920c092791c7d83ac7067874547a37c96a.tar.bz2
chat-51501f920c092791c7d83ac7067874547a37c96a.zip
PLT-3753 Added Segment analytics (#3972)
Diffstat (limited to 'vendor/github.com/jehiah')
-rw-r--r--vendor/github.com/jehiah/go-strftime/README.md4
-rw-r--r--vendor/github.com/jehiah/go-strftime/strftime.go71
-rw-r--r--vendor/github.com/jehiah/go-strftime/strftime_test.go40
3 files changed, 115 insertions, 0 deletions
diff --git a/vendor/github.com/jehiah/go-strftime/README.md b/vendor/github.com/jehiah/go-strftime/README.md
new file mode 100644
index 000000000..8eb240384
--- /dev/null
+++ b/vendor/github.com/jehiah/go-strftime/README.md
@@ -0,0 +1,4 @@
+go-strftime
+===========
+
+go implementation of strftime \ No newline at end of file
diff --git a/vendor/github.com/jehiah/go-strftime/strftime.go b/vendor/github.com/jehiah/go-strftime/strftime.go
new file mode 100644
index 000000000..99e26716f
--- /dev/null
+++ b/vendor/github.com/jehiah/go-strftime/strftime.go
@@ -0,0 +1,71 @@
+// go implementation of strftime
+package strftime
+
+import (
+ "strings"
+ "time"
+)
+
+// taken from time/format.go
+var conversion = map[rune]string {
+ /*stdLongMonth */ 'B':"January",
+ /*stdMonth */ 'b': "Jan",
+ // stdNumMonth */ 'm': "1",
+ /*stdZeroMonth */ 'm': "01",
+ /*stdLongWeekDay */ 'A': "Monday",
+ /*stdWeekDay */ 'a': "Mon",
+ // stdDay */ 'd': "2",
+ // stdUnderDay */ 'd': "_2",
+ /*stdZeroDay */ 'd': "02",
+ /*stdHour */ 'H': "15",
+ // stdHour12 */ 'I': "3",
+ /*stdZeroHour12 */ 'I': "03",
+ // stdMinute */ 'M': "4",
+ /*stdZeroMinute */ 'M': "04",
+ // stdSecond */ 'S': "5",
+ /*stdZeroSecond */ 'S': "05",
+ /*stdLongYear */ 'Y': "2006",
+ /*stdYear */ 'y': "06",
+ /*stdPM */ 'p': "PM",
+ // stdpm */ 'p': "pm",
+ /*stdTZ */ 'Z': "MST",
+ // stdISO8601TZ */ 'z': "Z0700", // prints Z for UTC
+ // stdISO8601ColonTZ */ 'z': "Z07:00", // prints Z for UTC
+ /*stdNumTZ */ 'z': "-0700", // always numeric
+ // stdNumShortTZ */ 'b': "-07", // always numeric
+ // stdNumColonTZ */ 'b': "-07:00", // always numeric
+}
+
+// This is an alternative to time.Format because no one knows
+// what date 040305 is supposed to create when used as a 'layout' string
+// this takes standard strftime format options. For a complete list
+// of format options see http://strftime.org/
+func Format(format string, t time.Time) string {
+ retval := make([]byte, 0, len(format))
+ for i, ni := 0, 0; i < len(format); i = ni + 2 {
+ ni = strings.IndexByte(format[i:], '%')
+ if ni < 0 {
+ ni = len(format)
+ } else {
+ ni += i
+ }
+ retval = append(retval, []byte(format[i:ni])...)
+ if ni + 1 < len(format) {
+ c := format[ni + 1]
+ if c == '%' {
+ retval = append(retval, '%')
+ } else {
+ if layoutCmd, ok := conversion[rune(c)]; ok {
+ retval = append(retval, []byte(t.Format(layoutCmd))...)
+ } else {
+ retval = append(retval, '%', c)
+ }
+ }
+ } else {
+ if ni < len(format) {
+ retval = append(retval, '%')
+ }
+ }
+ }
+ return string(retval)
+}
diff --git a/vendor/github.com/jehiah/go-strftime/strftime_test.go b/vendor/github.com/jehiah/go-strftime/strftime_test.go
new file mode 100644
index 000000000..45cbca345
--- /dev/null
+++ b/vendor/github.com/jehiah/go-strftime/strftime_test.go
@@ -0,0 +1,40 @@
+package strftime
+
+import (
+ "time"
+ "fmt"
+ "testing"
+)
+
+func ExampleFormat() {
+ t := time.Unix(1340244776, 0)
+ utc, _ := time.LoadLocation("UTC")
+ t = t.In(utc)
+ fmt.Println(Format("%Y-%m-%d %H:%M:%S", t))
+ // Output:
+ // 2012-06-21 02:12:56
+}
+
+func TestNoLeadingPercentSign(t *testing.T) {
+ tm := time.Unix(1340244776, 0)
+ utc, _ := time.LoadLocation("UTC")
+ tm = tm.In(utc)
+ result := Format("aaabbb0123456789%Y", tm)
+ if result != "aaabbb01234567892012" {
+ t.Logf("%s != %s", result, "aaabbb01234567892012")
+ t.Fail()
+ }
+}
+
+
+func TestUnsupported(t *testing.T) {
+ tm := time.Unix(1340244776, 0)
+ utc, _ := time.LoadLocation("UTC")
+ tm = tm.In(utc)
+ result := Format("%0%1%%%2", tm)
+ if result != "%0%1%%2" {
+ t.Logf("%s != %s", result, "%0%1%%2")
+ t.Fail()
+ }
+}
+