Skip to content

Commit

Permalink
sample added
Browse files Browse the repository at this point in the history
  • Loading branch information
MikeBild committed Oct 8, 2012
1 parent c984bc9 commit fff222b
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 19 deletions.
51 changes: 32 additions & 19 deletions samples/basic.js
@@ -1,23 +1,36 @@
var sm = require('../lib/statemutate.js');
var sm = require('../lib/statemutate.js'),
fa = require('./fileadapter.js');

var projection = new sm.Projections();

var model = {
// prepare data file
// fa.save('data.json',[{payload : 'One'}, {payload:'Two'}, {payload:'Three',value : 3}, {payload:'Four'}]);
var simpleModel = {
text: '',
valueSum: 0
}
var data = projection
.arrange([{payload : 'One'}, new projection.Message('','Two'), {payload:'Three', value : 3},{payload:'Four'}])
.append({payload : 'Last', value : -1})
.for(model)
.with(function(state, message) {
state.text += message.payload + ' ';
state.valueSum += message.value || 0;
return state;
})
.perform(function(message){
console.log('Step: ');
console.log(message);
});
console.log('Final result:')
console.log(data);

performSimpleProjection(simpleModel, function(model) {
console.log('Final result:');
console.log(model);
});


function performSimpleProjection(model, callback){
var projection = new sm.Projections();

fa.load('./data.json', function(data) {
projection
.arrange(data)
.append({payload : 'Last', value : -1})
.for(model)
.with(function(state, message) {
state.text += message.payload + ' ';
state.valueSum += message.value || 0;
return state;
})
.perform(function(message){
console.log('Step: ');
console.log(message);
});
callback(model);
});
}
1 change: 1 addition & 0 deletions samples/data.json
@@ -0,0 +1 @@
[{"payload":"One"},{"payload":"Two"},{"payload":"Three","value":3},{"payload":"Four"}]
16 changes: 16 additions & 0 deletions samples/fileadapter.js
@@ -0,0 +1,16 @@
var fs = require('fs');

function save(filename, data) {
fs.writeFile(filename, JSON.stringify(data), function(err) {
if(err) throw err;
});
}

function load(filename, callback) {
fs.readFile(filename, function (err, data) {
if (err) throw err;
callback(JSON.parse(data));
});
}
exports.save = save;
exports.load = load;

0 comments on commit fff222b

Please sign in to comment.