Ejemplo n.º 1
0
        static MiniYaml MergeWithParent(MiniYaml node, Dictionary <string, MiniYaml> allUnits)
        {
            var parent = GetParent(node, allUnits);

            if (parent != null)
            {
                var result = MiniYaml.MergeStrict(node, MergeWithParent(parent, allUnits));

                // strip the '-'
                result.Nodes.RemoveAll(a => a.Key.StartsWith("-"));
                return(result);
            }
            return(node);
        }
Ejemplo n.º 2
0
        static MiniYaml MergeWithParents(MiniYaml node, Dictionary <string, MiniYaml> allUnits, HashSet <string> allParents)
        {
            var parents = GetParents(node, allUnits);

            foreach (var kv in parents)
            {
                if (!allParents.Add(kv.Key))
                {
                    throw new YamlException(
                              "Bogus inheritance -- duplicate inheritance of {0}.".F(kv.Key));
                }

                node = MiniYaml.MergeStrict(node, MergeWithParents(kv.Value, allUnits, allParents));
            }

            return(node);
        }