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,28 +22,29 @@
} }
} }
exports.defineTag = function(title, opts) { TagDefinition.prototype.synonym = function(synonymName) {
_synonyms[synonymName.toLowerCase()] = this.title;
return this; // chainable
}
dictionary = {
defineTag: function(title, opts) {
_definitions[title] = new TagDefinition(title, opts); _definitions[title] = new TagDefinition(title, opts);
return _definitions[title]; return _definitions[title];
} },
exports.lookUp = function(title) { lookUp: function(title) {
title = exports.normalise(title); title = dictionary.normalise(title);
if ( _definitions.hasOwnProperty(title) ) { if ( _definitions.hasOwnProperty(title) ) {
return _definitions[title]; return _definitions[title];
} }
return false; return false;
} },
TagDefinition.prototype.synonym = function(synonymName) { normalise: function(title) {
_synonyms[synonymName.toLowerCase()] = this.title;
return this; // chainable
}
exports.normalise = function(title) {
canonicalName = title.toLowerCase(); canonicalName = title.toLowerCase();
if ( _synonyms.hasOwnProperty(canonicalName) ) { if ( _synonyms.hasOwnProperty(canonicalName) ) {
@ -51,7 +53,10 @@
return canonicalName; return canonicalName;
} }
};
require('jsdoc/tag/dictionary/definitions').defineTags(exports) require('jsdoc/tag/dictionary/definitions').defineTags(dictionary);
module.exports = dictionary;
})(); })();