10分でかける! node.js で対話的なプログラムを書く方法。
https://github.com/tokuhirom/utf728
UTF-8 から UTF-7 への変換をおこなう対話的なシェルをつくりたい、などのように単機能の対話的なシェルをつくりたいというケースはままあるかとおもいます。
そんな場合には readline というモジュールが組込まれているので、それをつかえばいいです。
具体的には以下のように書けば OK です。簡単ですね。
var Iconv = require('iconv').Iconv,
rl = require('readline'),
util = require('util'),
undefined;
function MyApp() {
this.utf827 = new Iconv('UTF-8', 'UTF-7');
this.utf728 = new Iconv('UTF-7', 'UTF-8');
}
MyApp.prototype = {
run: function () {
var self = this;
var rli = rl.createInterface(process.stdin, process.stdout);
rli.setPrompt('utf7> ');
rli.on('line', function(cmd) {
var e = self.convert(cmd);
util.puts(e);
rli.prompt();
}).on('close', function () {
util.puts('');
process.stdin.destroy();
});
rli.prompt();
},
convert: function (str) {
if (str.match(/^\+/)) {
return this.utf728.convert(str);
} else {
return this.utf827.convert(str);
}
}
};
(new MyApp()).run();
Published: 2011-12-27(Tue) 14:41