| commit | 45932ad32dfdd20826f5671da37a5f3ce9f26a8d | [log] [tgz] |
|---|---|---|
| author | Cameron Moore <moorereason@gmail.com> | Tue Sep 20 02:07:15 2016 -0500 |
| committer | Thomas Pelletier <pelletier.thomas@gmail.com> | Tue Sep 20 09:07:15 2016 +0200 |
| tree | 15393b5dd42bc30c0720b5330618c895987ee053 | |
| parent | 67b7b944a887e08e833aba866360b2d8ad87db69 [diff] |
Handle nil, map[string]string, and map[interface{}]interface{} input (#103)
* Handle map[string]string and map[interface{}]interface{} input
* Handle nil values
Fixes #99Go library for the TOML format.
This library supports TOML version v0.4.0
Go-toml provides the following features for using data parsed from TOML documents:
Go-toml is designed to help cover use-cases not covered by reflection-based TOML parsing:
import "github.com/pelletier/go-toml"
Say you have a TOML file that looks like this:
[postgres] user = "pelletier" password = "mypassword"
Read the username and password like this:
import ( "fmt" "github.com/pelletier/go-toml" ) config, err := toml.LoadFile("config.toml") if err != nil { fmt.Println("Error ", err.Error()) } else { // retrieve data directly user := config.Get("postgres.user").(string) password := config.Get("postgres.password").(string) // or using an intermediate object configTree := config.Get("postgres").(*toml.TomlTree) user = configTree.Get("user").(string) password = configTree.Get("password").(string) fmt.Println("User is ", user, ". Password is ", password) // show where elements are in the file fmt.Println("User position: %v", configTree.GetPosition("user")) fmt.Println("Password position: %v", configTree.GetPosition("password")) // use a query to gather elements without walking the tree results, _ := config.Query("$..[user,password]") for ii, item := range results.Values() { fmt.Println("Query result %d: %v", ii, item) } }
The documentation and additional examples are available at godoc.org.
Go-toml provides two handy command line tools:
tomll: Reads TOML files and lint them.
go install github.com/pelletier/go-toml/cmd/tomll tomll --help
tomljson: Reads a TOML file and outputs its JSON representation.
go install github.com/pelletier/go-toml/cmd/tomjson tomljson --help
Feel free to report bugs and patches using GitHub's pull requests system on pelletier/go-toml. Any feedback would be much appreciated!
You have to make sure two kind of tests run:
You can run both of them using ./test.sh.
The MIT License (MIT). Read LICENSE.