Fix resolveNamespace and getKlass on node

This commit is contained in:
kangax 2013-09-24 13:11:41 +02:00
parent 3e5abfcd6d
commit 83ca60e885
2 changed files with 19 additions and 4 deletions

View file

@ -1,4 +1,4 @@
(function() {
(function(global) {
var sqrt = Math.sqrt,
atan2 = Math.atan2;
@ -112,7 +112,9 @@
* @return {Object} klass "Class"
*/
function getKlass(type, namespace) {
return resolveNamespace(namespace)[fabric.util.string.camelize(fabric.util.string.capitalize(type))];
// capitalize first letter only
type = fabric.util.string.camelize(type.charAt(0).toUpperCase() + type.slice(1));
return resolveNamespace(namespace)[type];
}
/**
@ -126,7 +128,7 @@
var parts = namespace.split('.'),
len = parts.length,
obj = fabric.window;
obj = global || fabric.window;
for (var i = 0; i < len; ++i) {
obj = obj[parts[i]];
@ -533,4 +535,4 @@
fabric.util.getFunctionBody = getFunctionBody;
fabric.util.drawArc = drawArc;
})();
})(typeof exports !== 'undefined' ? exports : this);

View file

@ -745,4 +745,17 @@
'\n if (1) { alert(12345) } ');
});
test('getKlass', function() {
equal(fabric.util.getKlass('circle'), fabric.Circle);
equal(fabric.util.getKlass('rect'), fabric.Rect);
equal(fabric.util.getKlass('RemoveWhite', 'fabric.Image.filters'), fabric.Image.filters.RemoveWhite);
equal(fabric.util.getKlass('Sepia2', 'fabric.Image.filters'), fabric.Image.filters.Sepia2);
});
test('resolveNamespace', function() {
equal(fabric.util.resolveNamespace('fabric'), fabric);
equal(fabric.util.resolveNamespace('fabric.Image'), fabric.Image);
equal(fabric.util.resolveNamespace('fabric.Image.filters'), fabric.Image.filters);
});
})();