diff options
Diffstat (limited to 'lib/models/glossary.js')
-rw-r--r-- | lib/models/glossary.js | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/lib/models/glossary.js b/lib/models/glossary.js deleted file mode 100644 index 0033248..0000000 --- a/lib/models/glossary.js +++ /dev/null @@ -1,109 +0,0 @@ -var Immutable = require('immutable'); - -var error = require('../utils/error'); -var File = require('./file'); -var GlossaryEntry = require('./glossaryEntry'); -var parsers = require('../parsers'); - -var Glossary = Immutable.Record({ - file: File(), - entries: Immutable.OrderedMap() -}); - -Glossary.prototype.getFile = function() { - return this.get('file'); -}; - -Glossary.prototype.getEntries = function() { - return this.get('entries'); -}; - -/** - Return an entry by its name - - @param {String} name - @return {GlossaryEntry} -*/ -Glossary.prototype.getEntry = function(name) { - var entries = this.getEntries(); - var id = GlossaryEntry.nameToID(name); - - return entries.get(id); -}; - -/** - Render glossary as text - - @return {Promise<String>} -*/ -Glossary.prototype.toText = function(parser) { - var file = this.getFile(); - var entries = this.getEntries(); - - parser = parser? parsers.getByExt(parser) : file.getParser(); - - if (!parser) { - throw error.FileNotParsableError({ - filename: file.getPath() - }); - } - - return parser.renderGlossary(entries.toJS()); -}; - - -/** - Add/Replace an entry to a glossary - - @param {Glossary} glossary - @param {GlossaryEntry} entry - @return {Glossary} -*/ -Glossary.addEntry = function addEntry(glossary, entry) { - var id = entry.getID(); - var entries = glossary.getEntries(); - - entries = entries.set(id, entry); - return glossary.set('entries', entries); -}; - -/** - Add/Replace an entry to a glossary by name/description - - @param {Glossary} glossary - @param {GlossaryEntry} entry - @return {Glossary} -*/ -Glossary.addEntryByName = function addEntryByName(glossary, name, description) { - var entry = new GlossaryEntry({ - name: name, - description: description - }); - - return Glossary.addEntry(glossary, entry); -}; - -/** - Create a glossary from a list of entries - - @param {String} filename - @param {Array|List} entries - @return {Glossary} -*/ -Glossary.createFromEntries = function createFromEntries(file, entries) { - entries = entries.map(function(entry) { - if (!(entry instanceof GlossaryEntry)) { - entry = new GlossaryEntry(entry); - } - - return [entry.getID(), entry]; - }); - - return new Glossary({ - file: file, - entries: Immutable.OrderedMap(entries) - }); -}; - - -module.exports = Glossary; |