From f97c4723afcdc6a35a16c6a9a3acfa35962957f2 Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Thu, 13 Jan 2011 16:58:25 +0000 Subject: [PATCH] Minor refactor. --- modules/jsdoc/tag/dictionary.js | 63 ++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/modules/jsdoc/tag/dictionary.js b/modules/jsdoc/tag/dictionary.js index 23104ca5..456150b7 100644 --- a/modules/jsdoc/tag/dictionary.js +++ b/modules/jsdoc/tag/dictionary.js @@ -6,13 +6,14 @@ */ (function() { var _synonyms = {}, - _definitions = {}; + _definitions = {}, + dictionary; /** @constructor */ function TagDefinition(title, etc) { etc = etc || {}; - this.title = exports.normalise(title); + this.title = dictionary.normalise(title); for (var p in etc) { 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) { _synonyms[synonymName.toLowerCase()] = this.title; return this; // chainable } - exports.normalise = function(title) { - canonicalName = title.toLowerCase(); - - if ( _synonyms.hasOwnProperty(canonicalName) ) { - return _synonyms[canonicalName]; - } - - return canonicalName; - } - - require('jsdoc/tag/dictionary/definitions').defineTags(exports) + dictionary = { + defineTag: function(title, opts) { + _definitions[title] = new TagDefinition(title, opts); + + return _definitions[title]; + }, + + lookUp: function(title) { + title = dictionary.normalise(title); + + 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; })(); \ No newline at end of file