summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-02-03Rename pad function to indent.Dave Collins
The name indent better describes the function. This also will help differentiate the function from planned functions that are intended to perform padding for the purposes of aligning fields, types, and values.
2013-02-02Update README.mdDave Collins
2013-02-02Update overview doc for correct verb/flag combos.Dave Collins
2013-01-20Update README.mdDave Collins
2013-01-20Add test coverage report from gocov.Dave Collins
2013-01-20Add tests for unrecognized reflect values.Dave Collins
In order to help future proof itself, spew handles unrecognized reflect values by passing them on to the standard fmt library. Since spew handles all current reflect values in the language, this condition has to be manually tested with a bit of hackery by using unsafe to change the kind to a nonexistent value. As of this commit, there is now 100% test coverage.
2013-01-20Consolidate tests for invalid reflect values.Dave Collins
2013-01-20Add tests for invalid reflect values.Dave Collins
2013-01-20Improve invalid reflect value handling.Dave Collins
It was previously possible for an invalid reflect value to lead to a panic in certain obscure cases. Rather than adding multiple checks for the invalid reflect value, handle invalid reflect values immediately.
2013-01-20Add tests for structs with multiple equiv fields.Dave Collins
This commit adds tests for a struct which has an embedded struct pointer and a field that is a pointer to the same object. This ensures the cycle detection is properly reset between fields.
2013-01-20Add dump test for max depth option.Dave Collins
2013-01-20Add test for max depth option.Dave Collins
2013-01-20Move spew tests init into its own function.Dave Collins
2013-01-20Add tests for disable method options.Dave Collins
This commit adds tests for the DisableMethods and DisablePointerMethods options. All combinations of method options and Stringer interface invocation for both pointer receivers and non-pointer receivers are tested.
2013-01-20Invoke String/Error methods on addressable vals.Dave Collins
If a type implements a Stringer or error interface with a pointer receiver and the value being formatted is addressable, the interface should be invoked even when the DisablePointerMethods option is set. DisablePointerMethods is only intended to prevent the potentially unsafe action of stepping around type-safety restriction to invoke a Stringer or error interface with a pointer to an unaddressable value.
2013-01-20Add ConfigState to spewTests.Dave Collins
This paves the way for tests against the ConfigState options.
2013-01-20Add tests for sub-interfaces.Dave Collins
2013-01-20Add formatter passthrough tests for non %v verbs.Dave Collins
2013-01-20Add tests for types with custom Error interface.Dave Collins
2013-01-20Abstract common test types and functions.Dave Collins
2013-01-20Add tests for custom type that panics in Stringer.Dave Collins
2013-01-20Add tests for maps with multiple entries.Dave Collins
Previously, the tests did not include maps with more than a single entry since the iteration order is randomized and the tests only accepted a single valid expected value. This commit modifies the tests to accept multiple valid expected values and adds tests for a multi-entry map to both Dump and Formatter.
2013-01-19Make overview ConfigState options order consistent.Dave Collins
2013-01-19Update README.mdDave Collins
2013-01-19Move SpewState methods to ConfigState.Dave Collins
Rather than stuffing a ConfigState instance into a separate SpewState, just add the functionality directly to the ConfigState. This provides simpler syntax for the consumer. One side effect of this change is that, unlike a zero value SpewState, a zero value ConfigState doesn't provide default values which means the Indent field is set to provide no indentation. The consumer is now expected to set the indent to their desired value when declaring an instance of ConfigState. Alternatively, the consumer can call a new function, NewDefaultConfig, which returns a ConfigState with default values, including a default indentation of a single space. For example, to change the indent to a tab, the previous syntax was: ss := new(spew.SpewState) // or var ss spew.SpewState scs := ss.Config() scs.Indent = "\t" scs.Dump(whatever) The new syntax is simply: scs := spew.ConfigState{Indent: "\t"} scs.Dump(whatever)
2013-01-18Add tests for public package and SpewState funcs.Dave Collins
2013-01-17Update test summaries.Dave Collins
2013-01-17Add dump tests for interface arrays and slices.Dave Collins
2013-01-17Update README.mdDave Collins
2013-01-17Add test for new %#v and %#+v Formatter flags.Dave Collins
2013-01-17Implement support for %#v and %#+v in Formatter.Dave Collins
This commit implements feature request #3. In particular, it allows the formatter to respond to %#v and %#+v. The # flag (%#v) adds type information to the output and the combination of the # and + flags (%#+v) adds both type information and pointer information. This allows the consumer a choice between displaying types, pointer information, or both.
2013-01-16Fix a comment and a apply few gofmt changes.Dave Collins
2013-01-14Add full suite of tests for Formatter.Dave Collins
2013-01-14Namespace dump tests.Dave Collins
2013-01-14Use writer directly in formatter.Dave Collins
Write directly to the fmt.State output writer to avoid the overhead of a buffer in the formatter code.
2013-01-13Fix a few comment typos and improve consistency.Dave Collins
2013-01-12Add tests for non-interface nil pointers.Dave Collins
These tests are a slight adaptation of tests provided by kortschak@ in issue #4. Credits go to him.
2013-01-12Fix incorrect type display on nil pointers.Dave Collins
This was reported by korschak as issue #4 who also pinpointed the issue and provided a patch.
2013-01-12Minor code cleanup in dump_test.go.Dave Collins
2013-01-12Update ConfigState documentation.Dave Collins
There is now support for concurrent configuration through the use of SpewState instances. Update the documenation to properly reflect this.
2013-01-12Implement support for unqiue config instances.Dave Collins
This commit adds a new type, SpewState, which can be used to create instances with unique configuration options. The methods of SpewState are equivalent to the top-level functions. Full documentation and examples are included.
2013-01-10Update README.mdDave Collins
2013-01-10Update README.mdDave Collins
2013-01-10Add config pointers to format and dump states.Dave Collins
This paves the way to support individual configuration options through a separate type while still providing the simple global config and package level methods.
2013-01-10Fix a couple of comment typos.Dave Collins
2013-01-08Update README.mdDave Collins
2013-01-08Update README.mdDave Collins
2013-01-08Initial implementation.Dave Collins
2013-01-08Initial commitDave Collins