summaryrefslogtreecommitdiffstats
path: root/packages/gitbook/src/models/glossaryEntry.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gitbook/src/models/glossaryEntry.js')
-rw-r--r--packages/gitbook/src/models/glossaryEntry.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/packages/gitbook/src/models/glossaryEntry.js b/packages/gitbook/src/models/glossaryEntry.js
new file mode 100644
index 0000000..b36b276
--- /dev/null
+++ b/packages/gitbook/src/models/glossaryEntry.js
@@ -0,0 +1,43 @@
+const Immutable = require('immutable');
+const slug = require('github-slugid');
+
+/*
+ A definition represents an entry in the glossary
+*/
+
+const 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 slug(name);
+};
+
+
+module.exports = GlossaryEntry;