1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-26 13:51:28 +00:00

Merge pull request #701 from fuxiaohei/develop

code style simplify
This commit is contained in:
astaxie 2014-07-17 16:51:01 +08:00
commit ae8bb8ce82
5 changed files with 30 additions and 33 deletions

View File

@ -151,13 +151,13 @@ func (c *JsonConfigContainer) getData(key string) interface{} {
} }
for _, key := range sectionKey[1:] { for _, key := range sectionKey[1:] {
if v, ok := curValue.(map[string]interface{}); ok { if v, ok := curValue.(map[string]interface{}); ok {
if v2, ok := v[key]; ok { if curValue, ok = v[key]; !ok {
return v2
}
}
}
return nil return nil
} }
}
}
return curValue
}
if v, ok := c.data[key]; ok { if v, ok := c.data[key]; ok {
return v return v
} }

View File

@ -7,7 +7,7 @@
// @license http://github.com/astaxie/beego/blob/master/LICENSE // @license http://github.com/astaxie/beego/blob/master/LICENSE
// //
// @authors astaxie // @authors astaxie
package config package xml
import ( import (
"errors" "errors"
@ -24,27 +24,27 @@ import (
// XmlConfig is a xml config parser and implements Config interface. // XmlConfig is a xml config parser and implements Config interface.
// xml configurations should be included in <config></config> tag. // xml configurations should be included in <config></config> tag.
// only support key/value pair as <key>value</key> as each item. // only support key/value pair as <key>value</key> as each item.
type XMLConfig struct { type XMLConfig struct{}
}
// Parse returns a ConfigContainer with parsed xml config map. // Parse returns a ConfigContainer with parsed xml config map.
func (xmls *XMLConfig) Parse(filename string) (config.ConfigContainer, error) { func (xc *XMLConfig) Parse(filename string) (config.ConfigContainer, error) {
file, err := os.Open(filename) file, err := os.Open(filename)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer file.Close() defer file.Close()
x := &XMLConfigContainer{
data: make(map[string]interface{}), x := &XMLConfigContainer{data: make(map[string]interface{})}
}
content, err := ioutil.ReadAll(file) content, err := ioutil.ReadAll(file)
if err != nil { if err != nil {
return nil, err return nil, err
} }
d, err := x2j.DocToMap(string(content)) d, err := x2j.DocToMap(string(content))
if err != nil { if err != nil {
return nil, err return nil, err
} }
x.data = d["config"].(map[string]interface{}) x.data = d["config"].(map[string]interface{})
return x, nil return x, nil
} }

View File

@ -7,7 +7,7 @@
// @license http://github.com/astaxie/beego/blob/master/LICENSE // @license http://github.com/astaxie/beego/blob/master/LICENSE
// //
// @authors astaxie // @authors astaxie
package config package xml
import ( import (
"os" "os"

View File

@ -7,7 +7,7 @@
// @license http://github.com/astaxie/beego/blob/master/LICENSE // @license http://github.com/astaxie/beego/blob/master/LICENSE
// //
// @authors astaxie // @authors astaxie
package config package yaml
import ( import (
"bytes" "bytes"
@ -24,39 +24,36 @@ import (
) )
// YAMLConfig is a yaml config parser and implements Config interface. // YAMLConfig is a yaml config parser and implements Config interface.
type YAMLConfig struct { type YAMLConfig struct{}
}
// Parse returns a ConfigContainer with parsed yaml config map. // Parse returns a ConfigContainer with parsed yaml config map.
func (yaml *YAMLConfig) Parse(filename string) (config.ConfigContainer, error) { func (yaml *YAMLConfig) Parse(filename string) (y config.ConfigContainer, err error) {
y := &YAMLConfigContainer{
data: make(map[string]interface{}),
}
cnf, err := ReadYmlReader(filename) cnf, err := ReadYmlReader(filename)
if err != nil { if err != nil {
return nil, err return
} }
y.data = cnf y = &YAMLConfigContainer{
return y, nil data: cnf,
}
return
} }
// Read yaml file to map. // Read yaml file to map.
// if json like, use json package, unless goyaml2 package. // if json like, use json package, unless goyaml2 package.
func ReadYmlReader(path string) (cnf map[string]interface{}, err error) { func ReadYmlReader(path string) (cnf map[string]interface{}, err error) {
err = nil
f, err := os.Open(path) f, err := os.Open(path)
if err != nil { if err != nil {
return return
} }
defer f.Close() defer f.Close()
err = nil
buf, err := ioutil.ReadAll(f) buf, err := ioutil.ReadAll(f)
if err != nil || len(buf) < 3 { if err != nil || len(buf) < 3 {
return return
} }
if string(buf[0:1]) == "{" { if string(buf[0:1]) == "{" {
log.Println("Look lile a Json, try it") log.Println("Look like a Json, try json umarshal")
err = json.Unmarshal(buf, &cnf) err = json.Unmarshal(buf, &cnf)
if err == nil { if err == nil {
log.Println("It is Json Map") log.Println("It is Json Map")
@ -64,19 +61,19 @@ func ReadYmlReader(path string) (cnf map[string]interface{}, err error) {
} }
} }
_map, _err := goyaml2.Read(bytes.NewBuffer(buf)) data, err := goyaml2.Read(bytes.NewBuffer(buf))
if _err != nil { if err != nil {
log.Println("Goyaml2 ERR>", string(buf), _err) log.Println("Goyaml2 ERR>", string(buf), err)
//err = goyaml.Unmarshal(buf, &cnf)
err = _err
return return
} }
if _map == nil {
if data == nil {
log.Println("Goyaml2 output nil? Pls report bug\n" + string(buf)) log.Println("Goyaml2 output nil? Pls report bug\n" + string(buf))
return
} }
cnf, ok := _map.(map[string]interface{}) cnf, ok := data.(map[string]interface{})
if !ok { if !ok {
log.Println("Not a Map? >> ", string(buf), _map) log.Println("Not a Map? >> ", string(buf), data)
cnf = nil cnf = nil
} }
return return

View File

@ -7,7 +7,7 @@
// @license http://github.com/astaxie/beego/blob/master/LICENSE // @license http://github.com/astaxie/beego/blob/master/LICENSE
// //
// @authors astaxie // @authors astaxie
package config package yaml
import ( import (
"os" "os"