in process commit changing computers
parent
be57bab963
commit
c45e5cc948
@ -0,0 +1,5 @@
|
|||||||
|
module github.com/RageCage64/pretty-diff-reporter
|
||||||
|
|
||||||
|
go 1.18
|
||||||
|
|
||||||
|
require github.com/google/go-cmp v0.5.9 // indirect
|
@ -0,0 +1,2 @@
|
|||||||
|
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||||
|
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
@ -0,0 +1,54 @@
|
|||||||
|
package prettyreporter
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/google/go-cmp/cmp"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Reporter struct {
|
||||||
|
path cmp.Path
|
||||||
|
old []string
|
||||||
|
new []string
|
||||||
|
diffCount int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Reporter) PushStep(ps cmp.PathStep) {
|
||||||
|
r.path = append(r.path, ps)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Reporter) Report(rs cmp.Result) {
|
||||||
|
vOld, vNew := r.path.Last().Values()
|
||||||
|
if !rs.Equal() {
|
||||||
|
r.diffCount++
|
||||||
|
if vOld.IsValid() {
|
||||||
|
r.old = append(r.old, fmt.Sprintf("%+v", vOld))
|
||||||
|
}
|
||||||
|
if vNew.IsValid() {
|
||||||
|
r.new = append(r.new, fmt.Sprintf("%+v", vNew))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
r.old = append(r.old, "")
|
||||||
|
r.new = append(r.new, fmt.Sprintf("%+v", vOld))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Reporter) PopStep() {
|
||||||
|
r.path = r.path[:len(r.path)-1]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Reporter) String() string {
|
||||||
|
|
||||||
|
return strings.Join(r.lines, "\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
func maxLen(strs []string) int {
|
||||||
|
max := 0
|
||||||
|
for _, s := range strs {
|
||||||
|
if len(s) > max {
|
||||||
|
max = len(s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return max
|
||||||
|
}
|
Loading…
Reference in New Issue