Beispiel #1
0
        [Test] public void GetEmptyTemplateSet()
        {
            ITemplateSetLoader loader = new MyTemplateSetLoader();

            using (ITemplateSet templates = loader.Load("en", "Empty"))
                Assert.IsNull(templates.GetNextTemplate());
        }
Beispiel #2
0
 public virtual void Emit(ITemplateSet templateSet, StreamWriter writer)
 {
     for (int i = 0; i < nodes.Length; i++)
     {
         nodes[i].Emit(templateSet, writer);
     }
 }
Beispiel #3
0
        [Test] public void GetNonEmptyTemplateSet()
        {
            ITemplateSetLoader loader = new MyTemplateSetLoader();

            using (ITemplateSet templates = loader.Load("en", "Base"))
                Assert.AreEqual("LongText", templates.GetNextTemplate().Tag);
        }
Beispiel #4
0
        public void Process()
        {
            foreach (ITemplateSet set in this.templateSets.Values)
            {
                set.Resolve(this);
            }

            // Later on, we will implement rewriting only if changed
            foreach (Mapping mapping in this.generationMapper)
            {
                Console.WriteLine("Processing mapping '{0}:{1}' -> '{2}'",
                                  mapping.Source, mapping.Template, mapping.Destination);

                ITemplateSet  set = templateSets[mapping.Template];
                IDocumentNode src = documentSources[mapping.Source];

                using (Stream stream = File.Create(mapping.Destination))
                {
                    using (StreamWriter writer = new StreamWriter(stream))
                    {
                        writer.WriteLine("// This file was generated by TemplateEngine from template source '{0}'", mapping.Source);
                        writer.WriteLine("// using template '{0}. Do not modify this file directly, modify it from template source.", mapping.Template);
                        writer.WriteLine();

                        src.Emit(set, writer);
                    }
                }
            }
        }
Beispiel #5
0
        [Test] public void GeExistTemplateSet()
        {
            ITemplateSetLoader loader = new MyTemplateSetLoader();

            using (ITemplateSet templates = loader.Load("en", "Base"))
                Assert.IsNotNull(templates);
        }
Beispiel #6
0
 public void Resolve(ITemplateResolver resolver)
 {
     resolved = resolver.Resolve(link);
     if (resolved == null)
     {
         throw new Exception(string.Format("Could not resolve {0} link", link));
     }
 }
Beispiel #7
0
        public override void Emit(ITemplateSet templateSet, System.IO.StreamWriter writer)
        {
            string comp = string.Empty;

            for (int i = 0; i < conditions.Length; i++)
            {
                if (comp != string.Empty)
                {
                    comp += " ";
                }
                comp += conditions[i];
            }

            bool satisfied = true;

            for (int i = 0; i < conditions.Length; i++)
            {
                if (templateSet.Provide(conditions[i]) == null)
                {
                    satisfied = false;
                    break;
                }
            }

            if (satisfied)
            {
                writer.WriteLine("//#ifdef {0}", comp);

                for (int i = 0; i < nodes.Length; i++)
                {
                    if (nodes[i] is ElseNode)
                    {
                        break;
                    }
                    nodes[i].Emit(templateSet, writer);
                }

                writer.Write("//#endif");
            }
            else
            {
                int i;
                for (i = 0; i < nodes.Length; i++)
                {
                    if (nodes[i] is ElseNode)
                    {
                        break;
                    }
                }

                for (; i < nodes.Length; i++)
                {
                    nodes[i].Emit(templateSet, writer);
                }
            }
        }
Beispiel #8
0
        public void Emit(ITemplateSet templateSet, System.IO.StreamWriter writer)
        {
            object obj = templateSet.Provide(reference);

            if (obj == null)
            {
                throw new Exception(string.Format("Missing reference {0}", reference));
            }

            writer.Write(obj.ToString());
        }
Beispiel #9
0
 private static void FillLocalizer(Localizer loc, ITemplateSet templates)
 {
     for (Template t = templates.GetNextTemplate(); t != null; t = templates.GetNextTemplate())
     {
         if (string.IsNullOrEmpty(t.Translation))
         {
             loc.Remove(t.Tag);
         }
         else
         {
             loc.Add(t.Tag, t.Translation);
         }
     }
 }
Beispiel #10
0
        private static Localizer CreateLocalizer(Localizer fallback, string culture, IEnumerable <ITemplateProvider> providers)
        {
            Localizer loc = null;

            foreach (ITemplateProvider provider in providers)
            {
                using (ITemplateSet templates = provider.Load(culture))
                {
                    if (templates != null)
                    {
                        if (loc == null)
                        {
                            loc = new Localizer(fallback);
                        }
                        FillLocalizer(loc, templates);
                    }
                }
            }

            return(loc);
        }
Beispiel #11
0
        public override void Emit(ITemplateSet templateSet, System.IO.StreamWriter writer)
        {
            object ttarget = templateSet.Provide(templateTarget);

            if (ttarget is ITemplateSet)
            {
                ITemplateSet target = ttarget as ITemplateSet;


                foreach (string s in target.Available)
                {
                    ITemplateSet set = target.Provide(s) as ITemplateSet;

                    writer.WriteLine();
                    writer.WriteLine("\t\t//#foreach instanced to '{0}'", set.Name);
                    base.Emit(set, writer);
                    writer.WriteLine("//#endfor instanced to '{0}'", set.Name);
                }
            }
            else
            {
                Console.WriteLine("Error: could not resolve target '{0}' as ITemplateSet", templateTarget);
            }
        }
Beispiel #12
0
 public void Emit(ITemplateSet templateSet, System.IO.StreamWriter writer)
 {
     writer.Write(data);
 }
Beispiel #13
0
 public void Emit(ITemplateSet templateSet, System.IO.StreamWriter writer)
 {
 }
		private static void FillLocalizer (Localizer loc, ITemplateSet templates)
		{
			for (Template t = templates.GetNextTemplate(); t != null; t = templates.GetNextTemplate())
			{
				if (string.IsNullOrEmpty(t.Translation))
					loc.Remove(t.Tag);
				else
					loc.Add(t.Tag, t.Translation);
			}
		}