// Copyright 2013 Prometheus Team // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package web import ( "html/template" "reflect" "time" ) // By Russ Cox, https://groups.google.com/d/msg/golang-nuts/OEdSDgEC7js/iyhU9DW_IKcJ. func eq(args ...interface{}) bool { if len(args) == 0 { return false } x := args[0] switch x := x.(type) { case string, int, int64, byte, float32, float64: for _, y := range args[1:] { if x == y { return true } } return false } for _, y := range args[1:] { if reflect.DeepEqual(x, y) { return true } } return false } func timeSince(t time.Time) string { return time.Now().Round(time.Second / 10).Sub(t.Round(time.Second / 10)).String() } func truncate(str string, n int) string { if len(str) <= n { return str } return str[:n] + "..." } var webHelpers = template.FuncMap{ "eq": eq, "timeSince": timeSince, "truncate": truncate, }