diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-04-26 14:12:26 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-04-26 14:12:26 +0200 |
commit | be828cf004056d143c1e46c10ab29cc147fc14f8 (patch) | |
tree | 7f7c072eb286cda222ceb5d66f78d2838b16a71f /lib/models | |
parent | 1057bb15d3b7250dc541a126754750ec6b8a79a2 (diff) | |
download | gitbook-be828cf004056d143c1e46c10ab29cc147fc14f8.zip gitbook-be828cf004056d143c1e46c10ab29cc147fc14f8.tar.gz gitbook-be828cf004056d143c1e46c10ab29cc147fc14f8.tar.bz2 |
Add duration to final log for generation
Diffstat (limited to 'lib/models')
-rw-r--r-- | lib/models/summary.js | 31 | ||||
-rw-r--r-- | lib/models/summaryArticle.js | 8 |
2 files changed, 27 insertions, 12 deletions
diff --git a/lib/models/summary.js b/lib/models/summary.js index d0dc8af..d1df91f 100644 --- a/lib/models/summary.js +++ b/lib/models/summary.js @@ -7,7 +7,7 @@ var SummaryArticle = require('./summaryArticle'); var Summary = Immutable.Record({ file: File(), parts: Immutable.List() -}); +}, 'Summary'); Summary.prototype.getFile = function() { return this.get('file'); @@ -18,27 +18,44 @@ Summary.prototype.getParts = function() { }; /** + Return an article using an iterator to find it + + @param {Function} iter + @return {Article} +*/ +Summary.prototype.getArticle = function(iter) { + var parts = this.getParts(); + + return parts.reduce(function(result, part) { + if (result) return result; + + return SummaryArticle.findArticle(part, iter); + }, null); +}; + + +/** Return a part/article by its level @param {String} level - @return {Part|Article} + @return {Article} */ Summary.prototype.getByLevel = function(level) { - return SummaryArticle.findArticle(this, function(article) { + return this.getArticle(function(article) { return (article.getLevel() === level); - }, 'getParts'); + }); }; /** Return an article by its path @param {String} filePath - @return {Part|Article} + @return {Article} */ Summary.prototype.getByPath = function(filePath) { - return SummaryArticle.findArticle(this, function(article) { + return this.getArticle(function(article) { return (article.getPath() === filePath); - }, 'getParts'); + }); }; /** diff --git a/lib/models/summaryArticle.js b/lib/models/summaryArticle.js index d6cd045..ec1104c 100644 --- a/lib/models/summaryArticle.js +++ b/lib/models/summaryArticle.js @@ -11,7 +11,7 @@ var SummaryArticle = Immutable.Record({ title: String(), ref: String(), articles: Immutable.List() -}); +}, 'SummaryArticle'); SummaryArticle.prototype.getLevel = function() { return this.get('level'); @@ -125,12 +125,10 @@ SummaryArticle.create = function(def, level) { @param {Article|Part} base @param {Function(article)} iter - @param {String} method @return {Article} */ -SummaryArticle.findArticle = function(base, iter, method) { - method = method || 'getArticles'; - var articles = base[method](); +SummaryArticle.findArticle = function(base, iter) { + var articles = base.getArticles(); return articles.reduce(function(result, article) { if (result) return result; |