Sha256: 3db7316b5bdcb6fa1814f8c48b81c874c43f2c55341cba2a8a731aab612579bf

Contents?: true

Size: 1.66 KB

Versions: 69

Compression:

Stored size: 1.66 KB

Contents

var Chainsaw = require('chainsaw');
var Lazy = require('lazy');

module.exports = Prompt;
function Prompt (stream) {
    var waiting = [];
    var lines = [];
    var lazy = Lazy(stream).lines.map(String)
        .forEach(function (line) {
            if (waiting.length) {
                var w = waiting.shift();
                w(line);
            }
            else lines.push(line);
        })
    ;
    
    var vars = {};
    return Chainsaw(function (saw) {
        this.getline = function (f) {
            var g = function (line) {
                saw.nest(f, line, vars);
            };
            
            if (lines.length) g(lines.shift());
            else waiting.push(g);
        };
        
        this.do = function (cb) {
            saw.nest(cb, vars);
        };
    });
}

var util = require('util');
if (__filename === process.argv[1]) {
    var stdin = process.openStdin();
    Prompt(stdin)
        .do(function () {
            util.print('x = ');
        })
        .getline(function (line, vars) {
            vars.x = parseInt(line, 10);
        })
        .do(function () {
            util.print('y = ');
        })
        .getline(function (line, vars) {
            vars.y = parseInt(line, 10);
        })
        .do(function (vars) {
            if (vars.x + vars.y < 10) {
                util.print('z = ');
                this.getline(function (line) {
                    vars.z = parseInt(line, 10);
                })
            }
            else {
                vars.z = 0;
            }
        })
        .do(function (vars) {
            console.log('x + y + z = ' + (vars.x + vars.y + vars.z));
            process.exit();
        })
    ;
}

Version data entries

69 entries across 69 versions & 2 rubygems

Version Path
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.6.2 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.6.1 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.6 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.19 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.18 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.17 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.16 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.15 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.14 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.13 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.12 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.11 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.10 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.9 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.8 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.7 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.6 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.5 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js
trusty-festivity-extension-2.5.4 node_modules/bower/node_modules/decompress-zip/node_modules/binary/node_modules/chainsaw/examples/prompt.js