Code Piece Project
(Out-In Piece)
by yasumodev
HTML
<!-- CodePieceProject -->
<textarea rows="8" cols="40" id="log">
</textarea>
JavaScript
// Sum4
// $in {vals:Array}
// $out {sum:Number, progress:String}
var Sum4 = new Piece4(function($in, $out, $mem, done, fail, prog) {
$out.sum = 0;
for(var i in $in.vals) {
$out.sum += $in.vals[i];
$out.progress = (i / ($in.vals.length - 1)) * 100 + "%";
prog();
}
done();
var a = a.a;
});
Sum4.out({
done: function(out){
LogAdd("[onDone1] out: prog=" + out.progress + " sum=" + out.sum);
},
fail: function(err){
alert(err);
alert(err.out.sum);
},
prog: function(out){
LogAdd("[onProg] out: prog=" + out.progress + " sum=" + out.sum);
}
})
.in({vals:[1,2,3,4,5,6,7,8,9]});
/*
Sum4.out({
done : function(out){
LogAdd("[onDone2] out: 進捗=" + out.progress + " 合計=" + out.sum);
},
prog : null
})
.in();
*/
//===========================
// Piece4クラス
//===========================
function Piece4(fncExec) {
var self = this;
var $in = {}; // input object
var $out = {}; // output object
var $mem = {}; // memory object
var onDone;
var onFail;
var onProg;
function done() {if(onDone) onDone($out);}
function fail() {if(onFail) onFail($out);}
function prog() {if(onProg) onProg($out);}
self.in = function(obj) {
for(var key in obj) {
$in[key] = obj[key];
}
run();
return self;
};
self.out = function(funcs) {
if(funcs){
if(funcs.done !== undefined) onDone = funcs.done;
if(funcs.fail !== undefined) onFail = funcs.fail;
if(funcs.prog !== undefined) onProg = funcs.prog;
LogAdd("out funcs set.");
}
return self;
};
self.clear = function() {
$in = {};
$out = {};
return self;
};
function run() {
try{
LogAdd("run!");
fncExec($in, $out, $mem, done, fail, prog);
}catch(err){
err.out = $out;
$out = err;
fail();
}
}
}
return;
/*
// Sum3
// $in {vals:Array}
// $out {sum:Number, progress:String}
var...