Clean up lint (#56)
The only real change in this commit is that MaxInt is made private.
Everything else should be gofmt'ing, docs and cleanup of lint.
diff --git a/lexer.go b/lexer.go
index 0bffb0d..3c7641a 100644
--- a/lexer.go
+++ b/lexer.go
@@ -299,7 +299,7 @@
func (l *tomlLexer) lexComment() tomlLexStateFn {
for next := l.peek(); next != '\n' && next != eof; next = l.peek() {
- if (next == '\r' && l.follow("\r\n")) {
+ if next == '\r' && l.follow("\r\n") {
break
}
l.next()
diff --git a/lexer_test.go b/lexer_test.go
index 6183061..151b8bc 100644
--- a/lexer_test.go
+++ b/lexer_test.go
@@ -87,7 +87,6 @@
})
}
-
func TestSimpleWindowsCRLF(t *testing.T) {
testFlow(t, "a=4\r\nb=2", []token{
token{Position{1, 1}, tokenKey, "a"},
diff --git a/match_test.go b/match_test.go
index fc2adc6..b63654a 100644
--- a/match_test.go
+++ b/match_test.go
@@ -109,7 +109,7 @@
assertPath(t,
"$[123:]",
buildPath(
- newMatchSliceFn(123, MaxInt, 1),
+ newMatchSliceFn(123, maxInt, 1),
))
}
@@ -133,7 +133,7 @@
assertPath(t,
"$[123::7]",
buildPath(
- newMatchSliceFn(123, MaxInt, 7),
+ newMatchSliceFn(123, maxInt, 7),
))
}
@@ -149,7 +149,7 @@
assertPath(t,
"$[::7]",
buildPath(
- newMatchSliceFn(0, MaxInt, 7),
+ newMatchSliceFn(0, maxInt, 7),
))
}
diff --git a/query.go b/query.go
index e255bbe..f44848b 100644
--- a/query.go
+++ b/query.go
@@ -4,30 +4,32 @@
"time"
)
-// Type of a user-defined filter function, for use with Query.SetFilter().
+// NodeFilterFn represents a user-defined filter function, for use with
+// Query.SetFilter().
//
-// The return value of the function must indicate if 'node' is to be included
-// at this stage of the TOML path. Returning true will include the node, and
-// returning false will exclude it.
+// The return value of the function must indicate if 'node' is to be included
+// at this stage of the TOML path. Returning true will include the node, and
+// returning false will exclude it.
//
-// NOTE: Care should be taken to write script callbacks such that they are safe
-// to use from multiple goroutines.
+// NOTE: Care should be taken to write script callbacks such that they are safe
+// to use from multiple goroutines.
type NodeFilterFn func(node interface{}) bool
-// The result of Executing a Query
+// QueryResult is the result of Executing a Query.
type QueryResult struct {
items []interface{}
positions []Position
}
-// appends a value/position pair to the result set
+// appends a value/position pair to the result set.
func (r *QueryResult) appendResult(node interface{}, pos Position) {
r.items = append(r.items, node)
r.positions = append(r.positions, pos)
}
-// Set of values within a QueryResult. The order of values is not guaranteed
-// to be in document order, and may be different each time a query is executed.
+// Values is a set of values within a QueryResult. The order of values is not
+// guaranteed to be in document order, and may be different each time a query is
+// executed.
func (r *QueryResult) Values() []interface{} {
values := make([]interface{}, len(r.items))
for i, v := range r.items {
@@ -41,8 +43,8 @@
return values
}
-// Set of positions for values within a QueryResult. Each index in Positions()
-// corresponds to the entry in Value() of the same index.
+// Positions is a set of positions for values within a QueryResult. Each index
+// in Positions() corresponds to the entry in Value() of the same index.
func (r *QueryResult) Positions() []Position {
return r.positions
}
@@ -86,13 +88,13 @@
next.setNext(newTerminatingFn()) // init the next functor
}
-// Compiles a TOML path expression. The returned Query can be used to match
-// elements within a TomlTree and its descendants.
+// CompileQuery compiles a TOML path expression. The returned Query can be used
+// to match elements within a TomlTree and its descendants.
func CompileQuery(path string) (*Query, error) {
return parseQuery(lexQuery(path))
}
-// Executes a query against a TomlTree, and returns the result of the query.
+// Execute executes a query against a TomlTree, and returns the result of the query.
func (q *Query) Execute(tree *TomlTree) *QueryResult {
result := &QueryResult{
items: []interface{}{},
@@ -110,8 +112,8 @@
return result
}
-// Sets a user-defined filter function. These may be used inside "?(..)" query
-// expressions to filter TOML document elements within a query.
+// SetFilter sets a user-defined filter function. These may be used inside
+// "?(..)" query expressions to filter TOML document elements within a query.
func (q *Query) SetFilter(name string, fn NodeFilterFn) {
if q.filters == &defaultFilterFunctions {
// clone the static table
diff --git a/query_test.go b/query_test.go
index 9bf7bad..0d9f383 100644
--- a/query_test.go
+++ b/query_test.go
@@ -5,7 +5,7 @@
)
func assertArrayContainsInAnyOrder(t *testing.T, array []interface{}, objects ...interface{}) {
- if (len(array) != len(objects)) {
+ if len(array) != len(objects) {
t.Fatalf("array contains %d objects but %d are expected", len(array), len(objects))
}
@@ -23,7 +23,7 @@
}
}
-func TestQueryExample(t *testing.T) {
+func TestQueryExample(t *testing.T) {
config, _ := Load(`
[[book]]
title = "The Stand"
diff --git a/queryparser.go b/queryparser.go
index e7caa1e..1cbfc83 100644
--- a/queryparser.go
+++ b/queryparser.go
@@ -11,7 +11,7 @@
"fmt"
)
-const MaxInt = int(^uint(0) >> 1)
+const maxInt = int(^uint(0) >> 1)
type queryParser struct {
flow chan token
@@ -203,7 +203,7 @@
func (p *queryParser) parseSliceExpr() queryParserStateFn {
// init slice to grab all elements
- start, end, step := 0, MaxInt, 1
+ start, end, step := 0, maxInt, 1
// parse optional start
tok := p.getToken()
diff --git a/toml.go b/toml.go
index 7af032a..f3de359 100644
--- a/toml.go
+++ b/toml.go
@@ -29,6 +29,7 @@
}
}
+// TreeFromMap initializes a new TomlTree object using the given map.
func TreeFromMap(m map[string]interface{}) *TomlTree {
return &TomlTree{
values: m,
@@ -347,12 +348,13 @@
return result
}
+// Query compiles and executes a query on a tree and returns the query result.
func (t *TomlTree) Query(query string) (*QueryResult, error) {
- if q, err := CompileQuery(query); err != nil {
+ q, err := CompileQuery(query)
+ if err != nil {
return nil, err
- } else {
- return q.Execute(t), nil
}
+ return q.Execute(t), nil
}
// ToString generates a human-readable representation of the current tree.