Skip to content

Commit

Permalink
switched to node-overload
Browse files Browse the repository at this point in the history
  • Loading branch information
dodo committed Dec 1, 2010
1 parent 95dae26 commit cdd3a35
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 49 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@
[submodule "deps/node-canvas"]
path = deps/node-canvas
url = https://github.com/LearnBoost/node-canvas.git
[submodule "deps/node-overload"]
path = deps/node-overload
url = https://github.com/bmeck/node-overload.git
1 change: 1 addition & 0 deletions deps/node-overload
Submodule node-overload added at f51beb
68 changes: 21 additions & 47 deletions lib/canvas-svg/patch.js
Original file line number Diff line number Diff line change
@@ -1,53 +1,27 @@


// hack hack hack
var DOMPatch = exports.DOM = function DOMPatch(elem, rules) {
var that = this;
rules = rules || {};
this.__children = [];
for(var key in elem) {
if (rules.hasOwnProperty(key)) {
rules[key](this, key, elem);

} else if (key === "childNodes") {
this.__defineGetter__(key, function () {
return that.__children;
});
var children = elem.childNodes;
for(var n=0,l=children.length;n<l;n++) {
this.__children.push(new DOMPatch(children[n], rules));
}

} else if (key && key[0] !== "_") {
if (typeof elem[key] === 'function')
this[key] = (function (k) {
return function () {
return elem[k].apply(elem, arguments);
};
})(key);
else
this.__defineSetter__(key, (function (k) {
return function (val) {
return elem[k] = val;
};
})(key));
this.__defineGetter__(key, (function (k) {
return function () {
return elem[k];
};
})(key));
}
}
};
module.exports = function (overload) {

var result = {};

// hack hack hack
var patch = result.nodeName = function (elem) {
return overload.Watchable(function get(info) {
var key = info.property;
if (key === "nodeName") {
return elem.nodeName.toLowerCase(); // thats the reason

} else if (key === "childNodes") {
var res = [];
for(var i=0,l=elem.childNodes.length;i<l;i++)
res.push(patch(elem.childNodes[i]));
return res;

exports.nodeName = function (elem) {
return new DOMPatch(elem, {
nodeName : function (that, k, e) {
that.__defineGetter__(k, function () {
return e.nodeName.toLowerCase(); // thats the reason
});
},
});
} else return elem[key];
});
};

return result;
};


7 changes: 5 additions & 2 deletions lib/node-canvas-svg.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
// FIXME htmlparser

var depdir = __dirname + "/../deps",
_require = require('./canvas-svg/require')(depdir),
_require = require('./canvas-svg/require')(depdir);

patch = require('./canvas-svg/patch');

var jsdom = _require('jsdom', 'jsdom/lib/jsdom'),
vargs = _require('vargs', 'vargs/lib/vargs'),
overload = _require('node-overload', 'overload', 'lib/overload',
'node-overload/lib/overload'),
Canvas = _require('node-canvas', 'canvas', 'node-canvas/lib/canvas',
'canvas/lib/canvas'),

patch = require('./canvas-svg/patch')(overload),
Vargs = vargs.Constructor;


Expand Down

0 comments on commit cdd3a35

Please sign in to comment.