private IEnumerable<ToRoute> MapNugetNode()
{
// only the default package gets to do this.
yield return "nuspec".MapTo(new object(), new [] {
"id".MapTo(() => (string)_nuSpec.metadata.id, v => _nuSpec.metadata.id = v.SafeToString()),
"version".MapTo(() => (string)_nuSpec.metadata.version, v => _nuSpec.metadata.version = v.SafeToString()),
"title".MapTo(() => (string)_nuSpec.metadata.title, v => _nuSpec.metadata.title = v.SafeToString()),
"authors".MapTo(() => (string)_nuSpec.metadata.authors, v => _nuSpec.metadata.authors = v.SafeToString()),
"owners".MapTo(() => (string)_nuSpec.metadata.owners, v => _nuSpec.metadata.owners = v.SafeToString()),
"description".MapTo(() => (string)_nuSpec.metadata.description, v => _nuSpec.metadata.description = v.SafeToString()),
"summary".MapTo(() => (string)_nuSpec.metadata.summary, v => _nuSpec.metadata.summary = v.SafeToString()),
"releaseNotes".MapTo(() => (string)_nuSpec.metadata.releaseNotes, v => _nuSpec.metadata.releaseNotes = v.SafeToString()),
"copyright".MapTo(() => (string)_nuSpec.metadata.copyright, v => _nuSpec.metadata.copyright = v.SafeToString()),
"language".MapTo(() => (string)_nuSpec.metadata.language, v => _nuSpec.metadata.language = v.SafeToString()),
"tags".MapTo(() => (string)_nuSpec.metadata.tags, v => _nuSpec.metadata.tags = v.SafeToString().Replace(","," ")),
"licenseUrl".MapTo(() => (string)_nuSpec.metadata.licenseUrl, v => _nuSpec.metadata.licenseUrl = v.SafeToString()),
"projectUrl".MapTo(() => (string)_nuSpec.metadata.projectUrl, v => _nuSpec.metadata.projectUrl = v.SafeToString()),
"iconUrl".MapTo(() => (string)_nuSpec.metadata.iconUrl, v => _nuSpec.metadata.iconUrl = v.SafeToString()),
"requireLicenseAcceptance".MapTo(() => ((string)_nuSpec.metadata.requireLicenseAcceptance).IsPositive() ? "true" : "false", v => _nuSpec.metadata.requireLicenseAcceptance = v.SafeToString().IsTrue().ToString().ToLower())});
// map the dependencies node into generating
yield return "dependencies.packages".MapTo(new CustomPropertyList((list) => {
// when the list changes, set the value of the correct xml elements
_nuSpec.metadata.dependencies = null;
_nuSpec.metadata.Add("dependencies");
foreach (var i in list) {
var node = _nuSpec.metadata.dependencies.Add("dependency");
var item = i.ToString();
var p = item.IndexOf('/');
if (p > -1) {
node.Attributes.id = item.Substring(0, p);
node.Attributes.version = item.Substring(p + 1);
} else {
node.Attributes.id = item;
}
}
}));
}