Skip to content

Commit

Permalink
working example
Browse files Browse the repository at this point in the history
  • Loading branch information
rook2pawn committed Dec 27, 2012
1 parent aeed52b commit 3983013
Show file tree
Hide file tree
Showing 6 changed files with 118 additions and 4 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.npmignore
48 changes: 45 additions & 3 deletions examples/simple/example1-bundle.js
Original file line number Diff line number Diff line change
Expand Up @@ -644,7 +644,9 @@ EventEmitter.prototype.listeners = function(type) {

require.define("/package.json",function(require,module,exports,__dirname,__filename,process){module.exports = {"main":"index.js"}});

require.define("/index.js",function(require,module,exports,__dirname,__filename,process){var series = function() {
require.define("/index.js",function(require,module,exports,__dirname,__filename,process){var lib = require('./lib');

var series = function() {
var args = [].slice.call(arguments,0);
for (var i = 0;i < args.length; i++) {
this.sources.push(args[i]);
Expand All @@ -654,10 +656,28 @@ var to = function(el) {
this.canvas = el;
this.ctx = el.getContext('2d');
this.ctx.font = '20pt Arial';
this.ctx.fillStyle = '#000000';
this.sources.forEach(function(source) {
var put = function(data) {
if (source.count === undefined)
source.count = 0;
source.count++;
if (source.dataset === undefined)
source.dataset = [];
source.dataset.push(data);

var windowsize = source.windowsize || 10;
var datatodisplay = lib.cropData(source.dataset,windowsize);
var x = lib.getStartX(datatodisplay.length,windowsize,this.canvas.width);
var spacing = lib.getSpacing(windowsize,this.canvas.width);

this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);
this.ctx.fillText(data,0,100);
datatodisplay.forEach(function(data,idx) {
this.ctx.beginPath();
this.ctx.arc(x + (idx*spacing), this.canvas.height - data, 5, 0, Math.PI*2, false);
this.ctx.stroke();
},this);
// this.ctx.fillText(data,0,100);
};
source.on('data',put.bind(this));
},this);
Expand All @@ -669,9 +689,11 @@ var todiv = function(el) {
this.div.innerHTML = data;
};
source.on('data',put.bind(this));
});
},this);
};
var chart = function() {
this.buffer = document.createElement('canvas');
this.bufferctx = this.buffer.getContext('2d');
this.sources = [];
this.to = to;
this.toDiv = todiv;
Expand All @@ -680,6 +702,26 @@ var chart = function() {
exports.Chart = chart;
});

require.define("/lib/index.js",function(require,module,exports,__dirname,__filename,process){exports.cropData = function(list,windowsize) {
if (list.length < windowsize)
return list
else return list.slice(list.length - windowsize)
};
var getSpacing = function(windowsize,canvaswidth) {
return Math.floor(canvaswidth / (windowsize-1));
}
exports.getSpacing = getSpacing;
exports.getStartX = function(length,windowsize,canvaswidth) {
var x = undefined;
var spacing = getSpacing(windowsize,canvaswidth);
if (length <= windowsize) {
x = canvaswidth - (spacing * (length-1));
} else
x = 0;
return x;
}
});

require.define("/examples/simple/example1.js",function(require,module,exports,__dirname,__filename,process){var ee = require('events').EventEmitter;
var nodechart = require('../../index.js');
var datasource = new ee;
Expand Down
23 changes: 22 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
var lib = require('./lib');

var series = function() {
var args = [].slice.call(arguments,0);
for (var i = 0;i < args.length; i++) {
Expand All @@ -11,8 +13,25 @@ var to = function(el) {
this.ctx.fillStyle = '#000000';
this.sources.forEach(function(source) {
var put = function(data) {
if (source.count === undefined)
source.count = 0;
source.count++;
if (source.dataset === undefined)
source.dataset = [];
source.dataset.push(data);

var windowsize = source.windowsize || 10;
var datatodisplay = lib.cropData(source.dataset,windowsize);
var x = lib.getStartX(datatodisplay.length,windowsize,this.canvas.width);
var spacing = lib.getSpacing(windowsize,this.canvas.width);

this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);
this.ctx.fillText(data,0,100);
datatodisplay.forEach(function(data,idx) {
this.ctx.beginPath();
this.ctx.arc(x + (idx*spacing), this.canvas.height - data, 5, 0, Math.PI*2, false);
this.ctx.stroke();
},this);
// this.ctx.fillText(data,0,100);
};
source.on('data',put.bind(this));
},this);
Expand All @@ -27,6 +46,8 @@ var todiv = function(el) {
},this);
};
var chart = function() {
this.buffer = document.createElement('canvas');
this.bufferctx = this.buffer.getContext('2d');
this.sources = [];
this.to = to;
this.toDiv = todiv;
Expand Down
18 changes: 18 additions & 0 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
exports.cropData = function(list,windowsize) {
if (list.length < windowsize)
return list
else return list.slice(list.length - windowsize)
};
var getSpacing = function(windowsize,canvaswidth) {
return Math.floor(canvaswidth / (windowsize-1));
}
exports.getSpacing = getSpacing;
exports.getStartX = function(length,windowsize,canvaswidth) {
var x = undefined;
var spacing = getSpacing(windowsize,canvaswidth);
if (length <= windowsize) {
x = canvaswidth - (spacing * (length-1));
} else
x = 0;
return x;
}
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
},
"main": "index.js",
"dependencies": {
"hat" :""
},
"devDependencies": {}
}
31 changes: 31 additions & 0 deletions test/test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
var lib = require('../lib');
var test = require('tap').test;

test('cropdata',function(t) {
t.plan(3);
var x = [1,2,3,4,5,6];
var a = lib.cropData(x,2);
t.deepEqual(a,[5,6]);
var b = lib.cropData(x,6);
t.deepEqual(b,[1,2,3,4,5,6]);
var c = lib.cropData(x,7);
t.deepEqual(c,[1,2,3,4,5,6]);
});

test('spacing',function(t) {
t.plan(1);
var spacing = lib.getSpacing(5,200);
t.equal(spacing,50);
});
test('startx',function(t) {
t.plan(4);
var spacing = lib.getSpacing(5,200);
var startx = lib.getStartX(2,5,200);
t.equal(startx,150);
startx = lib.getStartX(1,5,200);
t.equal(startx,200);
startx = lib.getStartX(4,5,200);
t.equal(startx,50);
startx = lib.getStartX(5,5,200);
t.equal(startx,0);
});

0 comments on commit 3983013

Please sign in to comment.