PageRenderTime 81ms CodeModel.GetById 76ms app.highlight 3ms RepoModel.GetById 0ms app.codeStats 0ms

/src/Manos/Manos.Template/render.cs

http://github.com/jacksonh/manos
C# | 71 lines | 30 code | 18 blank | 23 comment | 2 complexity | 58f34db5ee0bda892af826bbdca82d12 MD5 | raw file
 1//
 2// Copyright (C) 2010 Jackson Harper (jackson@manosdemono.com)
 3//
 4// Permission is hereby granted, free of charge, to any person obtaining
 5// a copy of this software and associated documentation files (the
 6// "Software"), to deal in the Software without restriction, including
 7// without limitation the rights to use, copy, modify, merge, publish,
 8// distribute, sublicense, and/or sell copies of the Software, and to
 9// permit persons to whom the Software is furnished to do so, subject to
10// the following conditions:
11// 
12// The above copyright notice and this permission notice shall be
13// included in all copies or substantial portions of the Software.
14// 
15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22//
23//
24
25
26
27using System;
28using System.IO;
29using System.Reflection;
30using System.Collections.Generic;
31
32public class T {
33
34	public static int Main (string [] args)
35	{
36		if (args.Length < 2)
37			return Usage ();
38
39		Dictionary<string,object> targs = new Dictionary<string,object> ();
40
41		Assembly asm = Assembly.LoadFrom (args [0]);
42		Type template_type = asm.GetType (args [1]);
43
44		for (int i = 2; i + 1 < args.Length; i += 2) {
45			targs.Add (args [i], args [i + 1]);
46		}
47
48		targs ["test_enumerable"] = new List<string> () { "one", "two", "three", "four" };
49
50		Console.WriteLine ("TEMPLATE TYPE:  {0}", template_type);
51		MethodInfo meth = template_type.GetMethod ("RenderToStream");
52		object template = Activator.CreateInstance (template_type);
53
54		MemoryStream stream = new MemoryStream ();
55		StreamWriter writer = new StreamWriter (stream);
56
57		meth.Invoke (template, new object [] { Console.Out, targs });
58
59		
60		return 0;
61	}
62
63	public static int Usage ()
64	{
65		Console.WriteLine ("render template-assembly template-name [key value,...]");
66
67		return -1;
68	}
69}
70
71