index.js
function (opts, file, encoding, callback) {
  var filePath = new FilePath(file.path);
  results[filePath.value] = results[filePath.value] || [];

  _.each(rules, function(rule, name) {
    var response;

    if (!opts[name]) {
      return;
    }

    response = rule(filePath, opts[name]);

    if (check(response).is('string')) {
      results[filePath.value].push(response);
    }
  });

  callback(null, file);
}
function (opts, file, encoding, callback) {
  var filePath = new FilePath(file.path);
  results[filePath.value] = results[filePath.value] || [];

  _.each(rules, function(rule, name) {
    var response;

    if (!opts[name]) {
      return;
    }

    response = rule(filePath, opts[name]);

    if (check(response).is('string')) {
      results[filePath.value].push(response);
    }
  });

  callback(null, file);
}
/*
processFile

Run file path through each rule and combine linting results.