public static string WriteToString(this YamlObjectStore yaml) { var doc = new YamlDotNet.RepresentationModel.YamlDocument(yaml.MappingNode); var sb = new System.Text.StringBuilder(); var strm = new YamlDotNet.RepresentationModel.YamlStream(); strm.Add(doc); strm.Save(new System.IO.StringWriter(sb)); return(sb.ToString()); }
public static List <DataMap> FromFile(string filename) { using (var txt = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var dat = new StreamReader(txt)) { var yaml = new Y.YamlStream(); yaml.Load(dat); var dats = new System.Collections.Generic.List <DataMap>(); foreach (var d in yaml.Documents) { var node = (YamlElement)d.RootNode; if (node.Type != YamlElement.Types.Map) { continue; } dats.Add(new DataMap(d.RootNode)); } return(dats); } }
protected virtual void Visited(YamlStream stream) { }
protected virtual void Visit(YamlStream stream) { this.VisitChildren(stream); }
void IYamlVisitor.Visit(YamlStream stream) { this.Visit(stream); this.Visited(stream); }
/// <summary> /// Called after this object finishes visiting a <see cref="YamlStream"/>. /// </summary> /// <param name="stream"> /// The <see cref="YamlStream"/> that has been visited. /// </param> protected virtual void Visited(YamlStream stream) { // Do nothing. }
void IYamlVisitor.Visit(YamlStream stream) { Visit(stream); VisitChildren(stream); Visited(stream); }
public static List <Template> FromFile(string filename) { using (var txt = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var dat = new StreamReader(txt)) { var yaml = new Y.YamlStream(); yaml.Load(dat); var tpls = new System.Collections.Generic.List <Template>(); foreach (var d in yaml.Documents) { var node = (YamlElement)d.RootNode; float ppi = 300; string unit = ""; if (node.Has("dpi")) { float res; if (float.TryParse(node.Get("dpi"), out res)) { ppi = res; } } if (node.Has("unit")) { unit = node.Get("unit"); } var fac = new ElementFactory(ppi, unit); var tpl = new Template(fac.Detect(node)); tpl.values.Set("desc", node.Get("desc", Path.GetFileName(filename))); tpl.values.Set("path", Path.GetDirectoryName(filename)); tpl.values.Set("media", node.Get("media", "label")); if (node.Has("vars")) { var vars = node.Key("vars"); if (vars.Type == YamlElement.Types.Sequence) { foreach (var item in vars.List()) { switch (item.Type) { case YamlElement.Types.Scalar: { var arr = item.Val().Split(','); if (arr.Length > 1) { tpl.variables.Add(arr[0], arr[1]); } else if (arr.Length > 0) { tpl.variables.Add(arr[0], arr[0]); } break; } case YamlElement.Types.Sequence: { var arr = item.List().Select(i => i.Str()).ToList(); if (arr.Count > 1) { tpl.variables.Add(arr[0], arr[1]); } else if (arr.Count > 0) { tpl.variables.Add(arr[0], arr[0]); } break; } } } } } tpls.Add(tpl); } return(tpls); } }