summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-06-10 18:11:22 +0200
committerSamy Pessé <samypesse@gmail.com>2016-06-10 18:11:22 +0200
commit50a132cb2c0b0666b3b067e32d37e10bfb9e50da (patch)
tree5b4facb1c384c3f59b0d4b15f7a94d22607ecfe9
parent59be32a54f86d047a19d64eaa084bcc61f11ee2f (diff)
downloadgitbook-50a132cb2c0b0666b3b067e32d37e10bfb9e50da.zip
gitbook-50a132cb2c0b0666b3b067e32d37e10bfb9e50da.tar.gz
gitbook-50a132cb2c0b0666b3b067e32d37e10bfb9e50da.tar.bz2
Add method "createChildLevel" to SummaryPart
-rw-r--r--lib/models/__tests__/summaryPart.js23
-rw-r--r--lib/models/summaryPart.js21
2 files changed, 40 insertions, 4 deletions
diff --git a/lib/models/__tests__/summaryPart.js b/lib/models/__tests__/summaryPart.js
new file mode 100644
index 0000000..8ee50b6
--- /dev/null
+++ b/lib/models/__tests__/summaryPart.js
@@ -0,0 +1,23 @@
+var SummaryPart = require('../summaryPart');
+
+describe('SummaryPart', function() {
+ describe('createChildLevel', function() {
+ it('must create the right level', function() {
+ var article = SummaryPart.create({}, '1');
+ expect(article.createChildLevel()).toBe('1.1');
+ });
+
+ it('must create the right level when has articles', function() {
+ var article = SummaryPart.create({
+ articles: [
+ {
+ title: 'Test'
+ }
+ ]
+ }, '1');
+ expect(article.createChildLevel()).toBe('1.2');
+ });
+ });
+});
+
+
diff --git a/lib/models/summaryPart.js b/lib/models/summaryPart.js
index f7a82ce..f0e6f57 100644
--- a/lib/models/summaryPart.js
+++ b/lib/models/summaryPart.js
@@ -25,11 +25,24 @@ SummaryPart.prototype.getArticles = function() {
};
/**
- Create a SummaryPart
+ * Create a new level for a new child article
+ *
+ * @return {String}
+ */
+SummaryPart.prototype.createChildLevel = function() {
+ var level = this.getLevel();
+ var subArticles = this.getArticles();
+ var childLevel = level + '.' + (subArticles.size + 1);
+
+ return childLevel;
+};
- @param {Object} def
- @return {SummaryPart}
-*/
+/**
+ * Create a SummaryPart
+ *
+ * @param {Object} def
+ * @return {SummaryPart}
+ */
SummaryPart.create = function(def, level) {
var articles = (def.articles || []).map(function(article, i) {
if (article instanceof SummaryArticle) {