diff options
Diffstat (limited to 'lib/models/summary.js')
-rw-r--r-- | lib/models/summary.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/models/summary.js b/lib/models/summary.js index d8d0603..079c535 100644 --- a/lib/models/summary.js +++ b/lib/models/summary.js @@ -1,8 +1,10 @@ var Immutable = require('immutable'); +var error = require('../utils/error'); var File = require('./file'); var SummaryPart = require('./summaryPart'); var SummaryArticle = require('./summaryArticle'); +var parsers = require('../parsers'); var Summary = Immutable.Record({ file: File(), @@ -64,6 +66,28 @@ Summary.prototype.getByPath = function(filePath) { }; /** + Render summary as text + + @return {Promise<String>} +*/ +Summary.prototype.toText = function(parser) { + var file = this.getFile(); + var parts = this.getParts(); + + parser = parser? parsers.getByExt(parser) : file.getParser(); + + if (!parser) { + throw error.FileNotParsableError({ + filename: file.getPath() + }); + } + + return parser.summary.toText({ + parts: parts.toJS() + }); +}; + +/** Create a new summary for a list of parts @param {Lust|Array} parts |