X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/2fbd2cb6926b1066b38adf0698a3679d089ad80c..058d6f3448085c6f1d513691f8f2d5a12ae1d10a:/src/smartxml/transformations.js?ds=sidebyside diff --git a/src/smartxml/transformations.js b/src/smartxml/transformations.js index 6d72049..eaa292c 100644 --- a/src/smartxml/transformations.js +++ b/src/smartxml/transformations.js @@ -5,8 +5,18 @@ define(function(require) { var _ = require('libs/underscore'), toret = {}; +var getTransDesc = function(desc, name) { + if(typeof desc === 'function') { + desc = {impl: desc}; + } + if(!desc.impl) { + throw new Error('Got transformation description without implementation.') + } + return desc; +}; -toret.createGenericTransformation = function(desc) { +toret.createGenericTransformation = function(desc, name) { + desc = getTransDesc(desc); var GenericTransformation = function(document, args) { this.args = args || {}; @@ -37,7 +47,7 @@ toret.createGenericTransformation = function(desc) { } }; _.extend(GenericTransformation.prototype, { - name: desc.name, + name: name, run: function() { var changeRoot; if(!desc.undo) { @@ -64,9 +74,9 @@ toret.createGenericTransformation = function(desc) { // var t = T(doc, {a:1,b:2,c3:3}); -toret.createContextTransformation = function(desc) { +toret.createContextTransformation = function(desc, name) { // mozna sie pozbyc przez przeniesienie object/context na koniec argumentow konstruktora generic transformation - var GenericTransformation = toret.createGenericTransformation(desc); + var GenericTransformation = toret.createGenericTransformation(desc, name); var ContextTransformation = function(document, object, args) { GenericTransformation.call(this, document, args);