Code coverage report for lib/rules/index.js

Statements: 47.06% (8 / 17)      Branches: 0% (0 / 4)      Functions: 33.33% (1 / 3)      Lines: 47.06% (8 / 17)     

All files » lib/rules/ » index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 531 1         1                   1                                     1   17 17 17                          
'use strict';
var utils = require('../utils'),
    add = require('./add'),
    parse = require('./parse');
 
// exported
var rules = { ignore: [], watch: [] };
 
/**
 * Loads a nodemon config file and populates the ignore
 * and watch rules with it's contents, and calls callback
 * with the new rules
 *
 * @param  {String} filename
 * @param  {Function} callback
 */
function load(filename, callback) {
  parse(filename, function (err, result) {
    if (err) {
      // we should have bombed already, but
      utils.log.error(err);
      callback(err);
    }
 
    if (result.raw) {
      result.raw.forEach(add.bind(null, rules, 'ignore'));
    } else {
      result.ignore.forEach(add.bind(null, rules, 'ignore'));
      result.watch.forEach(add.bind(null, rules, 'watch'));
    }
 
    callback(null, rules);
  });
}
 
module.exports = {
  reset: function () { // just used for testing
    rules.ignore.length = rules.watch.length = 0;
    delete rules.ignore.re;
    delete rules.watch.re;
  },
  load: load,
  ignore: {
    test: add.bind(null, rules, 'ignore'),
    add: add.bind(null, rules, 'ignore')
  },
  watch: {
    test: add.bind(null, rules, 'watch'),
    add: add.bind(null, rules, 'watch')
  },
  add: add.bind(null, rules),
  rules: rules
};