guyellis/implicit

View on GitHub
lib/get-ignore.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

var _ = require('lodash');
var constants = require('./constants');
var firstFileContents = require('./first-file-contents');
var path = require('path');
var debug = require('debug')('implicit:get-ignore');

module.exports = function(startDirectory, callback) {
  firstFileContents([
    path.join(startDirectory, constants.ignoreFileName),
    path.join(__dirname, constants.defaultIgnoreFileName)
  ], function(err, contents){
    if(err) {
      return callback(err);
    }

    debug(typeof contents);
    debug('contents: %o', contents);
    // _.remove:
    // Removes all elements from array that predicate returns
    // truthy for and returns an array of the removed elements.
    var ignores = _.remove(contents.split('\n'), function(line){
      return line && line.length > 0;
    });

    return callback(null, ignores);
  });
};