static ClassDescriptor GetClassDescriptorFrom(IDirInfo dir)
        {
            ClassDescriptor classDescriptor = new ClassDescriptor();

            classDescriptor.Name = UrlToClassName(dir.Url);

            foreach (string file in dir.Files)
            {
                string fileName = Normalize(file);
                string url = dir.Url + "/" + file.ToLowerInvariant();
                classDescriptor.Members.Add(new MemberDescriptor(
                                                "string", fileName, "\"" + url + "\""));
            }

            foreach (IDirInfo subDir in dir.Directories)
            {
                string name = subDir.Name;
                string name1 = name;
                if (dir.Files.Exists(delegate (string fileName) {
                                                                    return fileName == name1;
                }))
                {
                    name = subDir.Name + "Directory";
                }

                classDescriptor.Members.Add(new MemberDescriptor(UrlToClassName(subDir.Url), Normalize(name)));
            }
            return classDescriptor;
        }
Esempio n. 2
0
 public string[] Execute(ClassDescriptor[] classDescriptors)
 {
     List<string> classes = new List<string>(classDescriptors.Length);
     foreach (ClassDescriptor descriptor in classDescriptors)
     {
         classes.Add(descriptorToClassService.Execute(descriptor));
     }
     return classes.ToArray();
 }
        public void Execute_WhenHasStringMember_Works()
        {
            ClassDescriptor cls = new ClassDescriptor();
            cls.Name = "the_class";
            cls.Members.Add(new MemberDescriptor("string", "member_name", "\"value\""));

            IDescriptorToClassService service = new DescriptorToClassService();

            string classDef = service.Execute(cls);

            Assert.IsTrue(classDef.IndexOf("class the_class") > -1);
            Assert.IsTrue(classDef.IndexOf("string member_name = \"value\";") > -1);
        }
        public void Execute_WhenHasClassBasedMember_Works()
        {
            ClassDescriptor cls = new ClassDescriptor();
            cls.Name = "the_class";
            cls.Members.Add(new MemberDescriptor("the_type", "member_name"));

            IDescriptorToClassService service = new DescriptorToClassService();

            string classDef = service.Execute(cls);

            Assert.IsTrue(classDef.IndexOf("class the_class") > -1);
            Assert.IsTrue(classDef.IndexOf("the_type member_name = new the_type();") > -1);
        }
Esempio n. 5
0
        public string Execute(ClassDescriptor classDescriptor)
        {
            StringBuilder classBuilder = new StringBuilder();
            classBuilder.AppendFormat(@"	public partial class {0} {1}
            {{
            ", classDescriptor.Name, classDescriptor.Bases);

            foreach (MemberDescriptor member in classDescriptor.Members)
            {
                classBuilder.AppendFormat(@"		public readonly {0} {1} = {2};
            ", member.Type, member.Name, member.Value);
            }

            classBuilder.AppendLine("	}");
            return classBuilder.ToString();
        }