New Upstream Release - golang-github-smallfish-simpleyaml
Ready changes
Summary
Merged new upstream version: 0.0~git20210720.3b1b5a3 (was: 0.0~git20170911.a320310).
Resulting package
Built on 2023-01-12T13:28 (took 3m8s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-releases golang-github-smallfish-simpleyaml-dev
Lintian Result
- golang-github-smallfish-simpleyaml-dev_0.0~git20210720.3b1b5a3-1~jan+nur1_all.deb
- golang-github-smallfish-simpleyaml_0.0~git20210720.3b1b5a3-1~jan+nur1.dsc
- golang-github-smallfish-simpleyaml_0.0~git20210720.3b1b5a3-1~jan+nur1_amd64.buildinfo
- golang-github-smallfish-simpleyaml_0.0~git20210720.3b1b5a3-1~jan+nur1_amd64.changes
Diff
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9f11b75
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.idea/
diff --git a/debian/changelog b/debian/changelog
index c721701..94c0b2a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+golang-github-smallfish-simpleyaml (0.0~git20210720.3b1b5a3-1) UNRELEASED; urgency=low
+
+ * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk> Thu, 12 Jan 2023 13:25:54 -0000
+
golang-github-smallfish-simpleyaml (0.0~git20170911.a320310-2) unstable; urgency=medium
* Source-only-upload.
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..f816424
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,8 @@
+module github.com/smallfish/simpleyaml
+
+go 1.16
+
+require (
+ github.com/stretchr/testify v1.7.0 // indirect
+ gopkg.in/yaml.v2 v2.4.0
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..8fc3599
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,13 @@
+github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/helper/util/get_paths.go b/helper/util/get_paths.go
index 6a1c373..15aa8d5 100644
--- a/helper/util/get_paths.go
+++ b/helper/util/get_paths.go
@@ -1,13 +1,16 @@
package util
import (
+ "bytes"
"errors"
+ "strconv"
+
"github.com/smallfish/simpleyaml"
- "strconv"
- "bytes"
)
-var ArrayOfPaths = make([]string, 0)
+var (
+ ArrayOfPaths = make([]string, 0)
+)
func GetAllExistingPaths(y *simpleyaml.Yaml, PathSlice []string) ([]string, error) {
if y.IsMap() {
@@ -15,10 +18,12 @@ func GetAllExistingPaths(y *simpleyaml.Yaml, PathSlice []string) ([]string, erro
if err != nil {
return nil, errors.New("Retrieving map keys failed")
}
+
for k, _ := range keys {
if k != 0 {
PathSlice = PathSlice[:len(PathSlice)-1]
}
+
PathSlice = append(PathSlice, keys[k])
GetAllExistingPaths(y.Get(keys[k]), PathSlice)
}
@@ -27,24 +32,28 @@ func GetAllExistingPaths(y *simpleyaml.Yaml, PathSlice []string) ([]string, erro
if err != nil {
return nil, errors.New("Retrieving array failed")
}
+
for k, _ := range arr {
if k != 0 {
PathSlice = PathSlice[:len(PathSlice)-1]
}
+
PathSlice = append(PathSlice, strconv.Itoa(k))
GetAllExistingPaths(y.GetIndex(k), PathSlice)
}
} else {
var buffer bytes.Buffer
for k, _ := range PathSlice {
- if k == len(PathSlice)-1 {
- buffer.WriteString(PathSlice[k])
- }else{
- buffer.WriteString(PathSlice[k]+"/")
- }
+ if k == len(PathSlice)-1 {
+ buffer.WriteString(PathSlice[k])
+ } else {
+ buffer.WriteString(PathSlice[k] + "/")
+ }
}
+
ArrayOfPaths = append(ArrayOfPaths, buffer.String())
}
+
return ArrayOfPaths, nil
}
@@ -52,11 +61,12 @@ func GetAllExistingPaths(y *simpleyaml.Yaml, PathSlice []string) ([]string, erro
//
// Example:
// util.GetAllPaths(*Yaml)
-func GetAllPaths(y *simpleyaml.Yaml) ([]string, error) {
+func GetAllPaths(y *simpleyaml.Yaml) ([]string, error) {
InitialPath := make([]string, 0)
- AllPaths, err := GetAllExistingPaths(y, InitialPath)
+ AllPaths, err := GetAllExistingPaths(y, InitialPath)
if err != nil {
return nil, errors.New("Retrieving paths failed")
}
+
return AllPaths, nil
}
diff --git a/simpleyaml.go b/simpleyaml.go
index b90b90c..3826429 100644
--- a/simpleyaml.go
+++ b/simpleyaml.go
@@ -1,4 +1,4 @@
-// a Go package to interact with arbitrary YAML.
+// Package simpleyaml: a Go package to interact with arbitrary YAML.
//
// Example:
// var data = []byte(`
@@ -27,10 +27,12 @@
// // y.Get("bb").Get("cc").Get("dd").Array()
// // y.Get("bb").Get("cc").Get("dd").GetIndex(1).Int()
// // y.GetPath("bb", "cc", "ee").String()
+
package simpleyaml
import (
"errors"
+
"gopkg.in/yaml.v2"
)
@@ -41,19 +43,16 @@ type Yaml struct {
// NewYaml returns a pointer to a new `Yaml` object after unmarshaling `body` bytes
func NewYaml(body []byte) (*Yaml, error) {
var val interface{}
- err := yaml.Unmarshal(body, &val)
- if err != nil {
+ if err := yaml.Unmarshal(body, &val); err != nil {
return nil, errors.New("unmarshal []byte to yaml failed: " + err.Error())
}
+
return &Yaml{val}, nil
}
-// Check if the given branch was found
+// IsFound Check if the given branch was found
func (y *Yaml) IsFound() bool {
- if y.data == nil {
- return false
- }
- return true
+ return y.data != nil
}
// Get returns a pointer to a new `Yaml` object for `key` in its `map` representation
@@ -67,6 +66,7 @@ func (y *Yaml) Get(key interface{}) *Yaml {
return &Yaml{val}
}
}
+
return &Yaml{nil}
}
@@ -79,6 +79,7 @@ func (y *Yaml) GetPath(branch ...interface{}) *Yaml {
for _, p := range branch {
yin = yin.Get(p)
}
+
return yin
}
@@ -87,21 +88,22 @@ func (y *Yaml) Array() ([]interface{}, error) {
if a, ok := (y.data).([]interface{}); ok {
return a, nil
}
+
return nil, errors.New("type assertion to []interface{} failed")
}
func (y *Yaml) IsArray() bool {
_, err := y.Array()
-
return err == nil
}
-// return the size of array
+// GetArraySize return the size of array
func (y *Yaml) GetArraySize() (int, error) {
a, err := y.Array()
if err != nil {
return 0, err
}
+
return len(a), nil
}
@@ -117,6 +119,7 @@ func (y *Yaml) GetIndex(index int) *Yaml {
return &Yaml{a[index]}
}
}
+
return &Yaml{nil}
}
@@ -125,6 +128,7 @@ func (y *Yaml) Int() (int, error) {
if v, ok := (y.data).(int); ok {
return v, nil
}
+
return 0, errors.New("type assertion to int failed")
}
@@ -133,6 +137,7 @@ func (y *Yaml) Bool() (bool, error) {
if v, ok := (y.data).(bool); ok {
return v, nil
}
+
return false, errors.New("type assertion to bool failed")
}
@@ -141,6 +146,7 @@ func (y *Yaml) String() (string, error) {
if v, ok := (y.data).(string); ok {
return v, nil
}
+
return "", errors.New("type assertion to string failed")
}
@@ -148,6 +154,7 @@ func (y *Yaml) Float() (float64, error) {
if v, ok := (y.data).(float64); ok {
return v, nil
}
+
return 0, errors.New("type assertion to float64 failed")
}
@@ -156,27 +163,30 @@ func (y *Yaml) Map() (map[interface{}]interface{}, error) {
if m, ok := (y.data).(map[interface{}]interface{}); ok {
return m, nil
}
+
return nil, errors.New("type assertion to map[interface]interface{} failed")
}
-// Check if it is a map
+// IsMap Check if it is a map
func (y *Yaml) IsMap() bool {
_, err := y.Map()
return err == nil
}
-// Get all the keys of the map
+// GetMapKeys Get all the keys of the map
func (y *Yaml) GetMapKeys() ([]string, error) {
m, err := y.Map()
if err != nil {
return nil, err
}
+
keys := make([]string, 0)
for k, _ := range m {
if s, ok := k.(string); ok {
keys = append(keys, s)
}
}
+
return keys, nil
}
diff --git a/simpleyaml_test.go b/simpleyaml_test.go
index 643dd4e..ff2aed7 100644
--- a/simpleyaml_test.go
+++ b/simpleyaml_test.go
@@ -2,11 +2,14 @@ package simpleyaml_test
import (
"testing"
+
"github.com/smallfish/simpleyaml"
"github.com/smallfish/simpleyaml/helper/util"
+ "github.com/stretchr/testify/assert"
)
-var data = []byte(`
+var (
+ data = []byte(`
name: smallfish
age: 99
float: 3.14159
@@ -23,188 +26,141 @@ bb:
- 333
ee: aaa
`)
+)
func TestBool(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
+ assert.NoError(t, err)
+
v, err := y.Get("bool").Bool()
- if err != nil {
- t.Fatal("get yaml failed")
- }
- t.Log(v)
- if v != true {
- t.Fatal("match bool failed")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", v)
+ assert.True(t, v)
}
func TestString(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
+ assert.NoError(t, err)
+
v, err := y.Get("name").String()
- if err != nil {
- t.Fatal("get yaml failed")
- }
- t.Log(v)
- if v != "smallfish" {
- t.Fatal("match name failed")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", v)
+ assert.Equal(t, v, "smallfish")
}
func TestStringFromIntKey(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
+ assert.NoError(t, err)
+
v, err := y.Get(0).String()
- if err != nil {
- t.Fatal("get yaml failed")
- }
-
- t.Log(v)
- if v != "IntKey" {
- t.Fatal("match IntKey failed")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", v)
+
+ assert.Equal(t, v, "IntKey")
}
func TestFloat(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
+ assert.NoError(t, err)
v, err := y.Get("float").Float()
- if err != nil {
- t.Fatal("get yaml failed", err)
- }
- t.Log(v)
- if v != 3.14159 {
- t.Fatal("match float failed")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", v)
+
+ assert.Equal(t, v, 3.14159)
}
func TestInt(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
+ assert.NoError(t, err)
+
v, err := y.Get("age").Int()
- if err != nil {
- t.Fatal("get yaml failed")
- }
- t.Log(v)
- if v != 99 {
- t.Fatal("match age failed")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", v)
+
+ assert.Equal(t, v, 99)
}
func TestGetIndex(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
+ assert.NoError(t, err)
+
v, err := y.Get("bb").Get("cc").Get("dd").GetIndex(1).Int()
- t.Log(v)
- if err != nil {
- t.Fatal("match bb.cc.ee[1] failed")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", v)
}
func TestString2(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
+ assert.NoError(t, err)
+
v, err := y.Get("bb").Get("cc").Get("ee").String()
- t.Log(v)
- if err != nil {
- t.Fatal("match bb.cc.ee failed")
- }
- if v != "aaa" {
- t.Fatal("bb.cc.ee not equal bbb")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", v)
+
+ assert.Equal(t, v, "aaa")
}
func TestGetPath(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
+ assert.NoError(t, err)
+
v, err := y.GetPath("bb", "cc", "ee").String()
- if err != nil {
- t.Fatal("get yaml failed")
- }
- t.Log(v)
- if v != "aaa" {
- t.Fatal("aa.bb.cc.ee not equal bbb")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", v)
+
+ assert.Equal(t, v, "aaa")
}
func TestGetAllPaths(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
+ assert.NoError(t, err)
v, err := util.GetAllPaths(y)
- if err != nil {
- t.Fatal("Getting all paths failed")
- }
-
- t.Log(v)
- if len(v) != 10 {
- t.Fatal("Number of paths do not match number or real paths.")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", v)
+
+ assert.Equal(t, len(v), 10)
}
func TestArray(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
+ assert.NoError(t, err)
+
v, err := y.Get("emails").Array()
- if err != nil {
- t.Fatal("get yaml failed")
- }
- t.Log(v)
- if len(v) != 2 {
- t.Fatal("emails length not equal 2")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", v)
+
+ assert.Equal(t, len(v), 2)
}
func TestMap(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
- if !y.IsMap() {
- t.Fatal("map check failed")
- }
+ assert.NoError(t, err)
+ assert.True(t, y.IsMap())
keys, err := y.GetMapKeys()
- if err != nil {
- t.Fatal("get keys from map is failed")
- }
- if len(keys) != 6 {
- t.Fatal("fail to check number of keys")
- }
+ assert.NoError(t, err)
+
+ t.Logf("result: %v", keys)
+
+ assert.Equal(t, len(keys), 6)
}
func TestIsFound(t *testing.T) {
y, err := simpleyaml.NewYaml(data)
- if err != nil {
- t.Fatal("init yaml failed")
- }
-
- if !y.Get("name").IsFound() { // name is exists
- t.Fatal("found name failed")
- }
-
- if y.Get("xx").IsFound() { // xx is not exists
- t.Fatal("found xx failed")
- }
+ assert.NoError(t, err)
+ assert.True(t, y.Get("name").IsFound())
+ assert.False(t, y.Get("xx").IsFound())
}
Debdiff
[The following lists of changes regard files as different if they have different names, permissions or owners.]
Files in second set of .debs but not in first
-rw-r--r-- root/root /usr/share/gocode/src/github.com/smallfish/simpleyaml/go.mod -rw-r--r-- root/root /usr/share/gocode/src/github.com/smallfish/simpleyaml/go.sum
No differences were encountered in the control files