This commit is contained in:
coreyog 2019-04-12 21:46:29 +00:00 committed by GitHub
commit 3b162af8da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 31 additions and 9 deletions

View File

@ -75,7 +75,7 @@ import (
"html" "html"
"net/http" "net/http"
"github.com/davecgh/go-spew/spew" "github.com/coreyog/go-spew/spew"
) )
func handler(w http.ResponseWriter, r *http.Request) { func handler(w http.ResponseWriter, r *http.Request) {

View File

@ -21,7 +21,7 @@ import (
"reflect" "reflect"
"testing" "testing"
"github.com/davecgh/go-spew/spew" "github.com/coreyog/go-spew/spew"
) )
// custom type to test Stinger interface on non-pointer receiver. // custom type to test Stinger interface on non-pointer receiver.

View File

@ -413,13 +413,26 @@ func (d *dumpState) dump(v reflect.Value) {
vt := v.Type() vt := v.Type()
numFields := v.NumField() numFields := v.NumField()
for i := 0; i < numFields; i++ { for i := 0; i < numFields; i++ {
d.indent()
vtf := vt.Field(i) vtf := vt.Field(i)
tag := vtf.Tag.Get("spew")
if tag == "-" {
continue
}
d.indent()
d.w.Write([]byte(vtf.Name)) d.w.Write([]byte(vtf.Name))
d.w.Write(colonSpaceBytes) d.w.Write(colonSpaceBytes)
d.ignoreNextIndent = true d.ignoreNextIndent = true
d.dump(d.unpackValue(v.Field(i))) d.dump(d.unpackValue(v.Field(i)))
if i < (numFields - 1) {
hasAnotherFieldToWrite := false
for j := i + 1; j < numFields; j++ {
vtf = vt.Field(j)
tag = vtf.Tag.Get("spew")
if tag != "-" {
hasAnotherFieldToWrite = true
}
}
if i < (numFields-1) && hasAnotherFieldToWrite {
d.w.Write(commaNewlineBytes) d.w.Write(commaNewlineBytes)
} else { } else {
d.w.Write(newlineBytes) d.w.Write(newlineBytes)

View File

@ -67,7 +67,7 @@ import (
"testing" "testing"
"unsafe" "unsafe"
"github.com/davecgh/go-spew/spew" "github.com/coreyog/go-spew/spew"
) )
// dumpTest is used to describe a test to be performed against the Dump method. // dumpTest is used to describe a test to be performed against the Dump method.

View File

@ -26,7 +26,7 @@ package spew_test
import ( import (
"fmt" "fmt"
"github.com/davecgh/go-spew/spew/testdata" "github.com/coreyog/go-spew/spew/testdata"
) )
func addCgoDumpTests() { func addCgoDumpTests() {

View File

@ -19,7 +19,7 @@ package spew_test
import ( import (
"fmt" "fmt"
"github.com/davecgh/go-spew/spew" "github.com/coreyog/go-spew/spew"
) )
type Flag int type Flag int

View File

@ -72,7 +72,7 @@ import (
"testing" "testing"
"unsafe" "unsafe"
"github.com/davecgh/go-spew/spew" "github.com/coreyog/go-spew/spew"
) )
// formatterTest is used to describe a test to be performed against NewFormatter. // formatterTest is used to describe a test to be performed against NewFormatter.

View File

@ -23,7 +23,7 @@ import (
"os" "os"
"testing" "testing"
"github.com/davecgh/go-spew/spew" "github.com/coreyog/go-spew/spew"
) )
// spewFunc is used to identify which public function of the spew package or // spewFunc is used to identify which public function of the spew package or
@ -154,6 +154,13 @@ func initSpewTests() {
dt := depthTester{indirCir1{nil}, [1]string{"arr"}, []string{"slice"}, dt := depthTester{indirCir1{nil}, [1]string{"arr"}, []string{"slice"},
map[string]int{"one": 1}} map[string]int{"one": 1}}
type ignoreTester struct {
visible bool
invisible bool `spew:"-"`
}
it := ignoreTester{true, false}
// Variable for tests on types which implement error interface. // Variable for tests on types which implement error interface.
te := customError(10) te := customError(10)
@ -179,6 +186,8 @@ func initSpewTests() {
{scsDefault, fSprint, "", complex(-1, -2), "(-1-2i)"}, {scsDefault, fSprint, "", complex(-1, -2), "(-1-2i)"},
{scsDefault, fSprintf, "%v", complex(float32(-3), -4), "(-3-4i)"}, {scsDefault, fSprintf, "%v", complex(float32(-3), -4), "(-3-4i)"},
{scsDefault, fSprintln, "", complex(float64(-5), -6), "(-5-6i)\n"}, {scsDefault, fSprintln, "", complex(float64(-5), -6), "(-5-6i)\n"},
{scsDefault, fCSFdump, "", it, "(spew_test.ignoreTester) {\n" +
" visible: (bool) true\n}\n"},
{scsNoMethods, fCSFprint, "", ts, "test"}, {scsNoMethods, fCSFprint, "", ts, "test"},
{scsNoMethods, fCSFprint, "", &ts, "<*>test"}, {scsNoMethods, fCSFprint, "", &ts, "<*>test"},
{scsNoMethods, fCSFprint, "", tps, "test"}, {scsNoMethods, fCSFprint, "", tps, "test"},