stringtools.go 895 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package formatting
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "strings"
  6. )
  7. // PrettyPrint prints prettier
  8. func PrettyPrint(v interface{}) (err error) {
  9. b, err := json.MarshalIndent(v, "", " ")
  10. if err == nil {
  11. fmt.Println(string(b))
  12. }
  13. return
  14. }
  15. func trimLeadingSlash(s string) string {
  16. if string(s[0]) == "/" {
  17. return s[1:]
  18. }
  19. return s
  20. }
  21. func trimLastSlash(s string) string {
  22. if string(s[len(s)-1]) == "/" {
  23. return s[:len(s)-2]
  24. }
  25. return s
  26. }
  27. func trimSlashes(s string) string {
  28. s = trimLastSlash(s)
  29. s = trimLeadingSlash(s)
  30. return s
  31. }
  32. func splitPath(path pathToDoc) (string, pathToDoc) {
  33. res := strings.SplitN(path.path, "/", 2)
  34. if len(res) > 1 {
  35. return res[0], pathToDoc{res[1], path.doc}
  36. }
  37. return res[0], pathToDoc{"", path.doc}
  38. }
  39. func stringMissingInSlice(a string, list []pathToDoc) bool {
  40. for _, b := range list {
  41. if b.path == a {
  42. return false
  43. }
  44. }
  45. return true
  46. }