Exemple #1
0
        private static void VerifyFile(string name, ITemplateFileHandler handler)
        {
            if (handler.Exists)
            {
                return;
            }

            var content = Resources.Templates.ResourceManager.GetString(name + "_Code");

            handler.Write(content);
        }
        public Template(string name, ITemplateFileHandler handler)
        {
            _handler = handler;

            Name          = name.EndsWith(TemplateExtension) ? name.Substring(0, name.Length - ExtensionLength) : name;
            _builtInCode  = Resources.Templates.ResourceManager.GetString(Name + "_Code");
            IsUserDefined = string.IsNullOrWhiteSpace(_builtInCode);

            if (IsUserDefined)
            {
                var code = handler.Read();
                if (!string.IsNullOrWhiteSpace(code))
                {
                    var regex   = new Regex(@"^Attribute VB_Ext_KEY\s+=\s+""Rubberduck(Caption|Description)"",\s+""(.+)""", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant);
                    var matches = regex.Matches(code);
                    foreach (Match match in matches)
                    {
                        switch (match.Groups[1].Value)
                        {
                        case "Caption":
                            Caption = match.Groups[2].Value;
                            break;

                        case "Description":
                            Description = match.Groups[2].Value;
                            break;
                        }
                    }
                }

                if (string.IsNullOrEmpty(Caption))
                {
                    Caption = Name;
                }
                if (string.IsNullOrEmpty(Description))
                {
                    Description = Name;
                }
            }
            else
            {
                VerifyFile(Name, handler);
                (Caption, Description) = GetBuiltInMetaData(Name);
            }
        }
Exemple #3
0
        public Template(string name, ITemplateFileHandler handler)
        {
            _handler = handler;

            Name          = name;
            IsUserDefined = VerifyIfUserDefined(name);

            if (IsUserDefined)
            {
                //TODO: Devise a way for users to define their captions/descriptions simply
                Caption     = Name;
                Description = Name;
            }
            else
            {
                VerifyFile(name, handler);
                (Caption, Description) = GetBuiltInMetaData(name);
            }
        }