summaryrefslogtreecommitdiffstats
path: root/lib/backbone/glossary.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/backbone/glossary.js')
-rw-r--r--lib/backbone/glossary.js19
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/backbone/glossary.js b/lib/backbone/glossary.js
index 0f5e567..22c4d42 100644
--- a/lib/backbone/glossary.js
+++ b/lib/backbone/glossary.js
@@ -2,6 +2,15 @@ var _ = require('lodash');
var util = require('util');
var BackboneFile = require('./file');
+// Normalize a glossary entry name into a unique id
+function nameToId(name) {
+ return name.toLowerCase()
+ .replace(/[\/\\\?\%\*\:\;\|\"\'\\<\\>\#\$\(\)\!\.\@]/g, '')
+ .replace(/ /g, '_')
+ .trim();
+}
+
+
/*
A glossary entry is represented by a name and a short description
An unique id for the entry is generated using its name
@@ -19,10 +28,7 @@ function GlossaryEntry(name, description) {
// Normalizes a glossary entry's name to create an ID
GlossaryEntry.prototype.getId = function() {
- return this.name.toLowerCase()
- .replace(/[\/\\\?\%\*\:\;\|\"\'\\<\\>\#\$\(\)\!\.\@]/g, '')
- .replace(/ /g, '_')
- .trim();
+ return nameToId(this.name);
};
@@ -54,6 +60,11 @@ Glossary.prototype.get = function(id) {
});
};
+// Find an entry by its name
+Glossary.prototype.find = function(name) {
+ return this.get(nameToId(name));
+};
+
// Return false if glossary has entries (and exists)
Glossary.prototype.isEmpty = function(id) {
return _.size(this.entries) === 0;