summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/output/base.js5
-rw-r--r--test/all.js1
-rw-r--r--test/ignore.js33
3 files changed, 39 insertions, 0 deletions
diff --git a/lib/output/base.js b/lib/output/base.js
index b60edb1..4563646 100644
--- a/lib/output/base.js
+++ b/lib/output/base.js
@@ -37,6 +37,11 @@ function Output(book, opts, parent) {
// Files to ignore in output
this.ignore = Ignore();
+
+ // Hack to inherits from rules of the book:
+ // Waiting for https://github.com/kaelzhang/node-ignore/pull/19 to be merged
+ this.ignore._rules = this.ignore._rules.concat(this.book.ignore._rules);
+ this.ignore._cache = {};
}
// Default name for generator
diff --git a/test/all.js b/test/all.js
index cb4e605..00046b5 100644
--- a/test/all.js
+++ b/test/all.js
@@ -19,6 +19,7 @@ require('./git');
require('./plugins');
require('./template');
require('./conrefs');
+require('./ignore');
// Page and HTML generation
require('./page');
diff --git a/test/ignore.js b/test/ignore.js
new file mode 100644
index 0000000..e8d833c
--- /dev/null
+++ b/test/ignore.js
@@ -0,0 +1,33 @@
+var mock = require('./mock');
+var WebsiteOutput = require('../lib/output/website');
+
+describe('Ignore', function() {
+ var output;
+
+ before(function() {
+ return mock.outputDefaultBook(WebsiteOutput, {
+ '.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'
+ })
+ .then(function(_output) {
+ output = _output;
+ });
+ });
+
+ it('should load rules from .ignore', function() {
+ output.should.not.have.file('test-1.js');
+ });
+
+ it('should load rules from .gitignore', function() {
+ output.should.not.have.file('test-2.js');
+ });
+
+ it('should load rules from .bookignore', function() {
+ output.should.have.file('test-3.js');
+ });
+});
+