diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/models/book.js | 4 | ||||
-rw-r--r-- | lib/parse/__tests__/parseBook.js | 2 | ||||
-rw-r--r-- | lib/parse/__tests__/parseGlossary.js | 2 | ||||
-rw-r--r-- | lib/parse/__tests__/parseIgnore.js | 40 | ||||
-rw-r--r-- | lib/parse/__tests__/parseReadme.js | 2 | ||||
-rw-r--r-- | lib/parse/__tests__/parseSummary.js | 2 | ||||
-rw-r--r-- | lib/parse/parseBook.js | 6 | ||||
-rw-r--r-- | lib/parse/parseIgnore.js | 6 |
8 files changed, 53 insertions, 11 deletions
diff --git a/lib/models/book.js b/lib/models/book.js index c3096f6..bd7a0d0 100644 --- a/lib/models/book.js +++ b/lib/models/book.js @@ -223,9 +223,11 @@ Book.createForFS = function createForFS(fs) { @return {Book} */ Book.createFromParent = function createFromParent(parent, language) { + var ignore = parent.getIgnore(); + return new Book({ logger: parent.getLogger(), - ignore: parent.getIgnore(), + ignore: Ignore().add(ignore), language: language, fs: FS.reduceScope(parent.getFS(), language) }); diff --git a/lib/parse/__tests__/parseBook.js b/lib/parse/__tests__/parseBook.js index 37f7f02..441b7c0 100644 --- a/lib/parse/__tests__/parseBook.js +++ b/lib/parse/__tests__/parseBook.js @@ -1,5 +1,3 @@ -jest.autoMockOff(); - var Book = require('../../models/book'); var createMockFS = require('../../fs/mock'); diff --git a/lib/parse/__tests__/parseGlossary.js b/lib/parse/__tests__/parseGlossary.js index 14ff7cc..53805fe 100644 --- a/lib/parse/__tests__/parseGlossary.js +++ b/lib/parse/__tests__/parseGlossary.js @@ -1,5 +1,3 @@ -jest.autoMockOff(); - var Book = require('../../models/book'); var createMockFS = require('../../fs/mock'); diff --git a/lib/parse/__tests__/parseIgnore.js b/lib/parse/__tests__/parseIgnore.js new file mode 100644 index 0000000..bee4236 --- /dev/null +++ b/lib/parse/__tests__/parseIgnore.js @@ -0,0 +1,40 @@ +var Book = require('../../models/book'); +var createMockFS = require('../../fs/mock'); + +describe('parseIgnore', function() { + var parseIgnore = require('../parseIgnore'); + var fs = createMockFS({ + '.ignore': 'test-1.js', + '.gitignore': 'test-2.js\ntest-3.js', + '.bookignore': '!test-3.js', + 'test-1.js': '1', + 'test-2.js': '2', + 'test-3.js': '3' + }); + + function getBook() { + var book = Book.createForFS(fs); + return parseIgnore(book); + } + + pit('should load rules from .ignore', function() { + return getBook() + .then(function(book) { + expect(book.isFileIgnored('test-1.js')).toBeTruthy(); + }); + }); + + pit('should load rules from .gitignore', function() { + return getBook() + .then(function(book) { + expect(book.isFileIgnored('test-2.js')).toBeTruthy(); + }); + }); + + pit('should load rules from .bookignore', function() { + return getBook() + .then(function(book) { + expect(book.isFileIgnored('test-3.js')).toBeFalsy(); + }); + }); +}); diff --git a/lib/parse/__tests__/parseReadme.js b/lib/parse/__tests__/parseReadme.js index 7d7c631..1b1567b 100644 --- a/lib/parse/__tests__/parseReadme.js +++ b/lib/parse/__tests__/parseReadme.js @@ -1,5 +1,3 @@ -jest.autoMockOff(); - var Promise = require('../../utils/promise'); var Book = require('../../models/book'); var createMockFS = require('../../fs/mock'); diff --git a/lib/parse/__tests__/parseSummary.js b/lib/parse/__tests__/parseSummary.js index 31e5d35..4b4650d 100644 --- a/lib/parse/__tests__/parseSummary.js +++ b/lib/parse/__tests__/parseSummary.js @@ -1,5 +1,3 @@ -jest.autoMockOff(); - var Book = require('../../models/book'); var createMockFS = require('../../fs/mock'); diff --git a/lib/parse/parseBook.js b/lib/parse/parseBook.js index 33f19f2..7dfa1eb 100644 --- a/lib/parse/parseBook.js +++ b/lib/parse/parseBook.js @@ -34,12 +34,16 @@ function parseMultilingualBook(book) { return Promise.reduce(langList, function(currentBook, lang) { var langID = lang.getID(); var child = Book.createFromParent(currentBook, langID); + var ignore = currentBook.getIgnore(); return Promise(child) - .then(parseIgnore) .then(parseConfig) .then(parseBookContent) .then(function(result) { + // Ignore content of this book when generating parent book + ignore.add(langID + '/**'); + currentBook = currentBook.set('ignore', ignore); + return currentBook.addLanguageBook(langID, result); }); }, book); diff --git a/lib/parse/parseIgnore.js b/lib/parse/parseIgnore.js index 3dd44f2..b23bfd8 100644 --- a/lib/parse/parseIgnore.js +++ b/lib/parse/parseIgnore.js @@ -8,6 +8,10 @@ var IGNORE_FILES = require('../constants/ignoreFiles'); @return {Book} */ function parseIgnore(book) { + if (book.isLanguageBook()) { + return Promise.reject(new Error('Ignore files could be parsed for language books')); + } + var fs = book.getFS(); var ignore = book.getIgnore(); @@ -35,7 +39,7 @@ function parseIgnore(book) { return fs.readAsString(filename) .then(function(content) { ignore.addPattern(content.toString().split(/\r?\n/)); - }, function() { + }, function(err) { return Promise(); }); }) |