Browse Source

have main api return back config.SectionValue

pull/16/head
Brett Langdon 11 years ago
parent
commit
a22f23d946
2 changed files with 27 additions and 33 deletions
  1. +18
    -5
      example/main.go
  2. +9
    -28
      forge.go

+ 18
- 5
example/main.go View File

@ -1,21 +1,34 @@
package main
import (
"encoding/json"
"fmt"
"github.com/brettlangdon/forge"
)
func main() {
// Parse a `SectionValue` from `example.cfg`
settings, err := forge.ParseFile("example.cfg")
if err != nil {
panic(err)
}
data, err := json.Marshal(settings)
if err != nil {
panic(err)
// Get a single value
if settings.Contains("global") {
// Get `global` casted as `StringValue`
value := settings.GetString("global")
fmt.Printf("global = \"%s\"\r\n", value.GetValue())
}
fmt.Println(string(data))
// Get a nested value
value, err := settings.Resolve("primary.included_setting")
fmt.Printf("primary.included_setting = \"%s\"\r\n", value.GetValue())
// Convert settings to a map
settingsMap, err := settings.ToMap()
fmt.Printf("global = \"%s\"\r\n", settingsMap["global"])
// Convert settings to JSON
jsonBytes, err := settings.ToJSON()
fmt.Printf("\r\n\r\n%s\r\n", string(jsonBytes))
}

+ 9
- 28
forge.go View File

@ -5,41 +5,22 @@ import (
"io"
"strings"
"github.com/brettlangdon/forge/config"
"github.com/brettlangdon/forge/parser"
)
func ParseString(data string) (map[string]interface{}, error) {
settings, err := parser.ParseReader(strings.NewReader(data))
if err != nil {
return nil, err
}
return settings.ToMap()
func ParseString(data string) (*config.SectionValue, error) {
return parser.ParseReader(strings.NewReader(data))
}
func ParseBytes(data []byte) (map[string]interface{}, error) {
settings, err := parser.ParseReader(bytes.NewReader(data))
if err != nil {
return nil, err
}
return settings.ToMap()
func ParseBytes(data []byte) (*config.SectionValue, error) {
return parser.ParseReader(bytes.NewReader(data))
}
func ParseFile(filename string) (map[string]interface{}, error) {
settings, err := parser.ParseFile(filename)
if err != nil {
return nil, err
}
return settings.ToMap()
func ParseFile(filename string) (*config.SectionValue, error) {
return parser.ParseFile(filename)
}
func ParseReader(reader io.Reader) (map[string]interface{}, error) {
settings, err := parser.ParseReader(reader)
if err != nil {
return nil, err
}
return settings.ToMap()
func ParseReader(reader io.Reader) (*config.SectionValue, error) {
return parser.ParseReader(reader)
}

Loading…
Cancel
Save