Skip to content

Commit 522ff9b

Browse files
committed
Fixes from review
1 parent d4a22a0 commit 522ff9b

File tree

1 file changed

+56
-49
lines changed

1 file changed

+56
-49
lines changed

kyaml/yaml/rnode.go

Lines changed: 56 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -718,10 +718,11 @@ func (rn *RNode) MustString() string {
718718

719719
// Content returns Node Content field.
720720
func (rn *RNode) Content() []*yaml.Node {
721-
if yNode := rn.YNode(); yNode != nil {
722-
return yNode.Content
721+
yNode := rn.YNode()
722+
if yNode == nil {
723+
return nil
723724
}
724-
return nil
725+
return yNode.Content
725726
}
726727

727728
// Fields returns the list of field names for a MappingNode.
@@ -756,17 +757,18 @@ func (rn *RNode) FieldRNodes() ([]*RNode, error) {
756757
// Field returns a fieldName, fieldValue pair for MappingNodes.
757758
// Returns nil for non-MappingNodes.
758759
func (rn *RNode) Field(field string) *MapNode {
759-
if yNode := rn.YNode(); yNode != nil {
760-
if yNode.Kind != yaml.MappingNode {
761-
return nil
762-
}
763-
var result *MapNode
764-
visitMappingNodeFields(rn.Content(), func(key, value *yaml.Node) {
765-
result = &MapNode{Key: NewRNode(key), Value: NewRNode(value)}
766-
}, field)
767-
return result
760+
yNode := rn.YNode()
761+
if yNode == nil {
762+
return nil
768763
}
769-
return nil
764+
if yNode.Kind != yaml.MappingNode {
765+
return nil
766+
}
767+
var result *MapNode
768+
visitMappingNodeFields(rn.Content(), func(key, value *yaml.Node) {
769+
result = &MapNode{Key: NewRNode(key), Value: NewRNode(value)}
770+
}, field)
771+
return result
770772
}
771773

772774
// VisitFields calls fn for each field in the RNode.
@@ -895,34 +897,36 @@ func (rn *RNode) ElementValuesList(keys []string) ([][]string, error) {
895897
// Element returns the element in the list which contains the field matching the value.
896898
// Returns nil for non-SequenceNodes or if no Element matches.
897899
func (rn *RNode) Element(key, value string) *RNode {
898-
if yNode := rn.YNode(); yNode != nil {
899-
if yNode.Kind != yaml.SequenceNode {
900-
return nil
901-
}
902-
elem, err := rn.Pipe(MatchElement(key, value))
903-
if err != nil {
904-
return nil
905-
}
906-
return elem
900+
yNode := rn.YNode()
901+
if yNode == nil {
902+
return nil
907903
}
908-
return nil
904+
if yNode.Kind != yaml.SequenceNode {
905+
return nil
906+
}
907+
elem, err := rn.Pipe(MatchElement(key, value))
908+
if err != nil {
909+
return nil
910+
}
911+
return elem
909912
}
910913

911914
// ElementList returns the element in the list in which all fields keys[i] matches all
912915
// corresponding values[i].
913916
// Returns nil for non-SequenceNodes or if no Element matches.
914917
func (rn *RNode) ElementList(keys []string, values []string) *RNode {
915-
if yNode := rn.YNode(); yNode != nil {
916-
if yNode.Kind != yaml.SequenceNode {
917-
return nil
918-
}
919-
elem, err := rn.Pipe(MatchElementList(keys, values))
920-
if err != nil {
921-
return nil
922-
}
923-
return elem
918+
yNode := rn.YNode()
919+
if yNode == nil {
920+
return nil
924921
}
925-
return nil
922+
if yNode.Kind != yaml.SequenceNode {
923+
return nil
924+
}
925+
elem, err := rn.Pipe(MatchElementList(keys, values))
926+
if err != nil {
927+
return nil
928+
}
929+
return elem
926930
}
927931

928932
// VisitElements calls fn for each element in a SequenceNode.
@@ -969,27 +973,30 @@ func (rn *RNode) GetAssociativeKey() string {
969973

970974
// MarshalJSON creates a byte slice from the RNode.
971975
func (rn *RNode) MarshalJSON() ([]byte, error) {
972-
if yNode := rn.YNode(); yNode != nil {
973-
s, err := rn.String()
974-
if err != nil {
975-
return nil, err
976-
}
976+
yNode := rn.YNode()
977+
if yNode == nil {
978+
return []byte("null"), nil
979+
}
977980

978-
if yNode.Kind == SequenceNode {
979-
var a []interface{}
980-
if err := Unmarshal([]byte(s), &a); err != nil {
981-
return nil, err
982-
}
983-
return json.Marshal(a)
984-
}
981+
s, err := rn.String()
982+
if err != nil {
983+
return nil, err
984+
}
985985

986-
m := map[string]interface{}{}
987-
if err := Unmarshal([]byte(s), &m); err != nil {
986+
if yNode.Kind == SequenceNode {
987+
var a []interface{}
988+
if err := Unmarshal([]byte(s), &a); err != nil {
988989
return nil, err
989990
}
990-
return json.Marshal(m)
991+
return json.Marshal(a)
992+
}
993+
994+
m := map[string]interface{}{}
995+
if err := Unmarshal([]byte(s), &m); err != nil {
996+
return nil, err
991997
}
992-
return json.Marshal(nil)
998+
999+
return json.Marshal(m)
9931000
}
9941001

9951002
// UnmarshalJSON overwrites this RNode with data from []byte.

0 commit comments

Comments
 (0)