<commit_before>var child_process = require('child_process')
var events = require('events')

var Controller = function(command, args) {
    var self = this
    events.EventEmitter.call(self)

    self._buffer = ''
    self.process = child_process.spawn(command, args)

    self.process.stdout.on('data', function(data) {
        self.emit('data', data)
    })
}

require('util').inherits(Controller, events.EventEmitter)

Controller.prototype.close = function() {
    this.process.close()
}

Controller.prototype.sendCommand = function(command) {
    this.process.stdin.write(command.toString() + '\n')
}

module.exports = Controller<commit_msg>Write response extractor<commit_after>var child_process = require('child_process')
var events = require('events')
var Response = require('./response')

var Controller = function(command, args) {
    var self = this
    events.EventEmitter.call(self)

    self._buffer = ''
    self.process = child_process.spawn(command, args)

    self.process.stdout.on('data', function(data) {
        self._buffer += (data + '').replace(/\r/g, '').replace(/#.*?\n/g, '').replace(/\t/g, ' ')

        var start = self._buffer.indexOf('\n\n')

        while (start != -1) {
            var response = Response.parse(self._buffer.substr(0, start))
            self._buffer = self._buffer.substr(start + 2)

            start = self._buffer.indexOf('\n\n')
            self.emit('response', response)
        }
    })
}

require('util').inherits(Controller, events.EventEmitter)

Controller.prototype.close = function() {
    this.process.close()
}

Controller.prototype.sendCommand = function(command) {
    this.process.stdin.write(command.toString() + '\n')
}

module.exports = Controller
{'fraction_non_alphanumeric': 0.1589057043073341, 'fraction_numerical': 0.0017462165308498253, 'mean_word_length': 3.441860465116279, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2453373', 'n_tokens_mistral': 520, 'n_tokens_neox': 517, 'n_words': 90}