code: function Runner(emitter, config) {
    debug('RUNNER INIT');
    var dotStrider = path.join(process.env.HOME || '/', '.strider');
    this.config = _.extend({
      pty: false,
      io: new EventEmitter2({
        wildcard: true
      }),
      processJob: core.process,
      pluginDir: path.join(__dirname, '../node_modules'),
      dataDir: process.env.STRIDER_CLONE_DEST || dotStrider,
      concurrentJobs: parseInt(process.env.CONCURRENT_JOBS || '1', 10) || 1,
      defaultRecentBuilds: parseInt(process.env.DEFAULT_RECENT_BUILDS || '1', 10) || 1
    }, config);
    this.emitter = emitter;
    this.queue = new JobQueue(this.processJob.bind(this), this.config.concurrentJobs);
    this.io = this.config.io;
    this.callbackMap = {};
    this.hooks = [];
    this.jobdata = new JobData(this.io);
    this.attach();
  }
docs: /*
  Options:
  pty: use 'pty'
  io: the means of communication with the job worker
  pluginDir: the directory in which to look for plugins
  dataDir: the directory in which to clone/test/etc