Jade.Parser.Nodes.TagNode.getAttributeString C# (CSharp) Méthode

getAttributeString() private méthode

private getAttributeString ( String name, Object attribute, JadeModel model, JadeTemplate template ) : String
name String
attribute Object
model JadeModel
template JadeTemplate
Résultat String
        private String getAttributeString(String name, Object attribute, JadeModel model, JadeTemplate template)
        {
            String value = null;
            if (attribute is String) {
                value = getInterpolatedAttributeValue(name, attribute, model, template);
            } else if (attribute is bool) {
                if ((bool)attribute)
                {
                    value = name;
                }
                else
                {
                    return "";
                }
                if (template.isTerse())
                {
                    value = null;
                }
            } else if (attribute is ExpressionString) {
                Object expressionValue = evaluateExpression((ExpressionString)attribute, model);
                if (expressionValue == null)
                {
                    return "";
                }
                // TODO: refactor
                if (expressionValue is bool) {
                    if ((bool)expressionValue)
                    {
                        value = name;
                    }
                    else
                    {
                        return "";
                    }
                    if (template.isTerse())
                    {
                        value = null;
                    }
                } else {
                    value = expressionValue.ToString();
                    value = Utils.escapeHTML(value);
                }
            } else {
                return "";
            }

            StringBuilder sb = new StringBuilder();
            if (name != null)
            {
                sb.Append(" ").Append(name);
                if (value != null)
                {
                    sb.Append("=").Append('"');
                    sb.Append(value);
                    sb.Append('"');
                }
            }
            return sb.ToString();
        }