summaryrefslogtreecommitdiffstats
path: root/lib/models/summary.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/models/summary.js')
-rw-r--r--lib/models/summary.js24
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