diff options
Diffstat (limited to 'lib/models/ignore.js')
-rw-r--r-- | lib/models/ignore.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/models/ignore.js b/lib/models/ignore.js new file mode 100644 index 0000000..499195e --- /dev/null +++ b/lib/models/ignore.js @@ -0,0 +1,42 @@ +var Immutable = require('immutable'); +var IgnoreMutable = require('ignore'); + +/* + Immutable version of node-ignore +*/ +var Ignore = Immutable.Record({ + ignore: new IgnoreMutable() +}, 'Ignore'); + +Ignore.prototype.getIgnore = function() { + return this.get('ignore'); +}; + +/** + Test if a file is ignored by these rules + + @param {String} filePath + @return {Boolean} +*/ +Ignore.prototype.isFileIgnored = function(filename) { + var ignore = this.getIgnore(); + return ignore.filter([filename]).length == 0; +}; + +/** + Add rules + + @param {String} + @return {Ignore} +*/ +Ignore.prototype.add = function(rule) { + var ignore = this.getIgnore(); + var newIgnore = new IgnoreMutable(); + + newIgnore.add(ignore); + newIgnore.add(rule); + + return this.set('ignore', newIgnore); +}; + +module.exports = Ignore; |