summaryrefslogtreecommitdiffstats
path: root/lib/models/glossaryEntry.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/models/glossaryEntry.js')
-rw-r--r--lib/models/glossaryEntry.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/models/glossaryEntry.js b/lib/models/glossaryEntry.js
new file mode 100644
index 0000000..9c390c5
--- /dev/null
+++ b/lib/models/glossaryEntry.js
@@ -0,0 +1,45 @@
+var Immutable = require('immutable');
+
+/*
+ A definition represents an entry in the glossary
+*/
+
+var GlossaryEntry = Immutable.Record({
+ name: String(),
+ description: String()
+});
+
+GlossaryEntry.prototype.getName = function() {
+ return this.get('name');
+};
+
+GlossaryEntry.prototype.getDescription = function() {
+ return this.get('description');
+};
+
+
+/**
+ Get identifier for this entry
+
+ @retrun {Boolean}
+*/
+GlossaryEntry.prototype.getID = function() {
+ return GlossaryEntry.nameToID(this.getName());
+};
+
+
+/**
+ Normalize a glossary entry name into a unique id
+
+ @param {String}
+ @return {String}
+*/
+GlossaryEntry.nameToID = function nameToID(name) {
+ return name.toLowerCase()
+ .replace(/[\/\\\?\%\*\:\;\|\"\'\\<\\>\#\$\(\)\!\.\@]/g, '')
+ .replace(/ /g, '_')
+ .trim();
+};
+
+
+module.exports = GlossaryEntry;