# 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
    };