From e51a49d096e5bd228e67d0b6083aaac6a735a10e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Wed, 4 Dec 2013 13:02:04 +0100 Subject: [PATCH 1/1] Refactoring extension registration - abstract away object method registration --- src/wlxml/wlxml.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/wlxml/wlxml.js b/src/wlxml/wlxml.js index d67fe31..8d99cde 100644 --- a/src/wlxml/wlxml.js +++ b/src/wlxml/wlxml.js @@ -172,6 +172,9 @@ var WLXMLDocument = function(xml, options) { this.ElementNodeFactory.prototype.registerTransformation = function(Transformation) { return this.transformations.register(Transformation); }; + this.ElementNodeFactory.prototype.registerMethod = function(methodName, method) { + this[methodName] = method; + }; this.TextNodeFactory = function() { smartxml.TextNode.apply(this, arguments); @@ -181,6 +184,9 @@ var WLXMLDocument = function(xml, options) { this.TextNodeFactory.prototype.registerTransformation = function(Transformation) { return this.transformations.register(Transformation); }; + this.TextNodeFactory.prototype.registerMethod = function(methodName, method) { + this[methodName] = method; + }; this.classMethods = {}; this.classTransformations = {}; @@ -279,6 +285,10 @@ $.extend(WLXMLDocument.prototype, { this.trigger('contentSet'); }, + registerMethod: function(methodName, method) { + this[methodName] = method; + }, + registerTransformation: function(Transformation) { return this.transformations.register(Transformation); }, @@ -328,7 +338,7 @@ $.extend(WLXMLDocument.prototype, { ); } targets.forEach(function(target) { - target[methodName] = method; + target.registerMethod(methodName, method) }); }); } -- 2.20.1