diff options
Diffstat (limited to 'lib/models')
-rw-r--r-- | lib/models/summary.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/models/summary.js b/lib/models/summary.js index b04630f..3b46941 100644 --- a/lib/models/summary.js +++ b/lib/models/summary.js @@ -1,3 +1,4 @@ +var is = require('is'); var Immutable = require('immutable'); var error = require('../utils/error'); @@ -88,6 +89,46 @@ Summary.prototype.getFirstArticle = function() { }; /** + Return next article of an article + + @param {Article} current + @return {Article} +*/ +Summary.prototype.getNextArticle = function(current) { + var level = is.string(current)? current : current.getLevel(); + var wasPrev = false; + + return this.getArticle(function(article) { + if (wasPrev) return true; + + wasPrev = article.getLevel() == level; + return false; + }); +}; + +/** + Return previous article of an article + + @param {Article} current + @return {Article} +*/ +Summary.prototype.getPrevArticle = function(current) { + var level = is.string(current)? current : current.getLevel(); + var prev = undefined; + + this.getArticle(function(article) { + if (article.getLevel() == level) { + return true; + } + + prev = article; + return false; + }); + + return prev; +}; + +/** Render summary as text @return {Promise<String>} |