Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • v1.6.3
  • v1.6.2
  • v1.6.1
  • v1.6.0
  • v1.5.0
  • v1.4.1
  • v1.4.0
  • v1.3.9
  • v1.3.8
  • v1.3.7
  • v1.3.6
  • v1.3.5
  • v1.3.4
  • v1.3.3
  • v1.3.2
  • v1.3.1
  • v1.3.0
  • v1.2.23
  • v1.2.22
  • v1.2.21
21 results

helpers.go

helpers.go 949 B
package table

import (
	"strings"
	"unicode/utf8"
)

func LenUTF8(s string) int {
	return utf8.RuneCountInString(s)
}

// pad pads the given string with empty space to the right if it is less then length
func Pad(s string, length int) string {
	l := LenUTF8(s)
	if l >= length {
		return s
	}

	diff := length - l
	var bf strings.Builder

	bf.WriteString(s)

	for i := 0; i < diff; i++ {
		bf.WriteString(" ")
	}
	return bf.String()
}

func tableHeader(line string) (cols []string) {
	c := strings.Split(line, "|")
	//name = strings.TrimRight(strings.TrimSpace(strings.ToLower(c[0])), ":")
	for i := 1; i < len(c)-1; i++ {
		cols = append(cols, strings.TrimSpace(c[i]))
	}

	if len(c) > 0 && strings.TrimSpace(c[len(c)-1]) != "" {
		cols = append(cols, strings.TrimSpace(c[len(c)-1]))
	}

	return
}

type formatLine string

func (f *formatLine) WriteLine(l string) error {
	*f = formatLine(l)
	return nil
}

var _f formatLine
var _ Formatter = &_f