Skip to content

Commit

Permalink
Conversion of 4 spaces to 2 spaces.
Browse files Browse the repository at this point in the history
  • Loading branch information
jprichardson committed Jan 22, 2013
1 parent b7dec16 commit b1e1ed4
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 68 deletions.
93 changes: 48 additions & 45 deletions lib/readline-prompter.js
Expand Up @@ -4,69 +4,72 @@ var readline = require('readline')


function ReadlinePrompter(tokens, defaultTokens, skipTokens) {
this._tokens = tokens || [];
this._defaultTokens = defaultTokens || {};
this._skipTokens = skipTokens || {};
this._tokens = tokens || [];
this._defaultTokens = defaultTokens || {};
this._skipTokens = skipTokens || {};

this._io = {input: process.stdin, output: process.stdout};
this._io = {input: process.stdin, output: process.stdout};
}

ReadlinePrompter.prototype.io = function(input, output) {
this._io.input = input;
this._io.output = output;
this._io.input = input;
this._io.output = output;
};

ReadlinePrompter.prototype.input = function(input) {
this._io.input = input;
this._io.input = input;
};

ReadlinePrompter.prototype.output = function(output) {
this._io.output = output;
this._io.output = output;
};

ReadlinePrompter.prototype.end = function(endCallback) {
var self = this, rl = readline.createInterface(this._io);
var self = this, rl = readline.createInterface(this._io);

var results = {};
var results = {};

batch(this._tokens).sequential().each(function(i, token, next) {
if (self._skipTokens[token]) {
results[token] = self._skipTokens[token];
next();
batch(this._tokens).sequential().each(function(i, token, next) {
if (self._skipTokens[token]) {
results[token] = self._skipTokens[token];
next();
} else {
if (self._defaultTokens[token]) {
var defaulResponse = self._defaultTokens[token];
rl.question(util.format("%s: (%s) ", token, defaulResponse), function(answer) {
answer = answer.trim();
if (answer === '') {
results[token] = defaulResponse;
} else {
results[token] = answer;
}
next();
});
} else {
if (self._defaultTokens[token]) {
var defaulResponse = self._defaultTokens[token];
rl.question(util.format("%s: (%s) ", token, defaulResponse), function(answer) {
answer = answer.trim();
if (answer === '') {
results[token] = defaulResponse;
} else {
results[token] = answer;
}
next();
});
} else {
function ask() {
rl.question(token + ': ', function(answer) {
answer = answer.trim();
if (answer === '')
ask();
else {
results[token] = answer.trim();
next();
}
});
}
ask();
}
}
}).end(function() {
rl.close();
endCallback(results);
});
function ask() {
rl.question(token + ': ', function(answer) {
answer = answer.trim();
if (answer === '')
ask();
else {
results[token] = answer.trim();
next();
}
});
}
ask();
}
}
}).end(function() {
rl.close();
endCallback(results);
});
};

module.exports = function rlp(tokens, defaultTokens, skipTokens) {
return new ReadlinePrompter(tokens, defaultTokens, skipTokens);
return new ReadlinePrompter(tokens, defaultTokens, skipTokens);
}




15 changes: 11 additions & 4 deletions package.json
Expand Up @@ -9,7 +9,13 @@
"type": "git",
"url": "git@github.com:jprichardson/node-readline-prompter.git"
},
"keywords": ["readline", "console", "questions", "command", "question"],
"keywords": [
"readline",
"console",
"questions",
"command",
"question"
],
"author": "JP Richardson <jprichardson@gmail.com>",
"licenses": [
{
Expand All @@ -18,13 +24,14 @@
}
],
"dependencies": {
"batchflow": "0.1.x"
"batchflow": "~0.3.0"
},
"devDependencies": {
"suppose": "0.0.x",
"mocha": "1.4.x",
"mocha": "*",
"autoresolve": "0.0.x",
"path-extra": "0.0.x"
"path-extra": "0.0.x",
"testutil": "~0.4.0"
},
"main": "./lib/readline-prompter.js",
"scripts": {
Expand Down
39 changes: 20 additions & 19 deletions test/readline-prompter.test.js
@@ -1,31 +1,32 @@
var assert = require('assert')
var testutil = require('testutil')
, P = require('autoresolve')
, suppose = require('suppose')
, path = require('path-extra')
, fs = require('fs');
, fs = require('fs')

TEST_DIR = path.join(path.tempdir(), 'test-readline-prompter');
TEST_DIR = path.join(path.tempdir(), 'test-readline-prompter')

describe('readline-prompter', function() {
it('should prompt the user', function(done){
if (!fs.existsSync(TEST_DIR))
fs.mkdirSync(TEST_DIR);

var file = path.join(TEST_DIR, 'results.json');
it('should prompt the user', function(done){
if (!fs.existsSync(TEST_DIR))
fs.mkdirSync(TEST_DIR);

suppose('node', [P('test/resources/testscript1.js'), file])
.on('first name: (JP) ').respond('Jon Paul\n')
.on('last name: ').respond('Richardson\n')
.end(function(code) {
fs.readFile(file, 'utf8', function(err, data) {
var obj = JSON.parse(data);
var file = path.join(TEST_DIR, 'results.json');

assert(obj['first name'] === 'Jon Paul');
assert(obj['last name'] === 'Richardson');
assert(obj['cats name'] === 'petey');
suppose('node', [P('test/resources/testscript1.js'), file])
.on('first name: (JP) ').respond('Jon Paul\n')
.on('last name: ').respond('Richardson\n')
.end(function(code) {
fs.readFile(file, 'utf8', function(err, data) {
var obj = JSON.parse(data)

done();
});
});
EQ (obj['first name'], 'Jon Paul')
EQ (obj['last name'], 'Richardson')
EQ (obj['cats name'], 'petey')

done()
})
})
})
})

0 comments on commit b1e1ed4

Please sign in to comment.