Minor refactor.

This commit is contained in:
Michael Mathews 2011-01-13 16:58:25 +00:00
parent 70d9bb2e5e
commit f97c4723af

View File

@ -6,13 +6,14 @@
*/ */
(function() { (function() {
var _synonyms = {}, var _synonyms = {},
_definitions = {}; _definitions = {},
dictionary;
/** @constructor */ /** @constructor */
function TagDefinition(title, etc) { function TagDefinition(title, etc) {
etc = etc || {}; etc = etc || {};
this.title = exports.normalise(title); this.title = dictionary.normalise(title);
for (var p in etc) { for (var p in etc) {
if (etc.hasOwnProperty(p)) { if (etc.hasOwnProperty(p)) {
@ -21,37 +22,41 @@
} }
} }
exports.defineTag = function(title, opts) {
_definitions[title] = new TagDefinition(title, opts);
return _definitions[title];
}
exports.lookUp = function(title) {
title = exports.normalise(title);
if ( _definitions.hasOwnProperty(title) ) {
return _definitions[title];
}
return false;
}
TagDefinition.prototype.synonym = function(synonymName) { TagDefinition.prototype.synonym = function(synonymName) {
_synonyms[synonymName.toLowerCase()] = this.title; _synonyms[synonymName.toLowerCase()] = this.title;
return this; // chainable return this; // chainable
} }
exports.normalise = function(title) { dictionary = {
canonicalName = title.toLowerCase(); defineTag: function(title, opts) {
_definitions[title] = new TagDefinition(title, opts);
if ( _synonyms.hasOwnProperty(canonicalName) ) {
return _synonyms[canonicalName]; return _definitions[title];
} },
return canonicalName; lookUp: function(title) {
} title = dictionary.normalise(title);
require('jsdoc/tag/dictionary/definitions').defineTags(exports) if ( _definitions.hasOwnProperty(title) ) {
return _definitions[title];
}
return false;
},
normalise: function(title) {
canonicalName = title.toLowerCase();
if ( _synonyms.hasOwnProperty(canonicalName) ) {
return _synonyms[canonicalName];
}
return canonicalName;
}
};
require('jsdoc/tag/dictionary/definitions').defineTags(dictionary);
module.exports = dictionary;
})(); })();