diff --git a/lib/variation.js b/lib/variation.js index 6b6f11f..f21c532 100644 --- a/lib/variation.js +++ b/lib/variation.js @@ -1,12 +1,14 @@ var util = require('util'); var path = require('path'); var _ = require("lodash"); +var ejs = require("ejs"); var fileUtil = require("./file-util"); var logger = require("./logger"); var readConfig = require("./read-config"); var OptimizelyClient = require("optimizely-node-client"); var OptCLIBase = require("./optcli-base"); +var Assets = require('./assets'); function Variation(attributes, baseDir) { Variation.super_.call(this, attributes, baseDir); @@ -38,10 +40,20 @@ Variation.prototype.getJS = function() { } Variation.prototype.createRemote = function(client, remote) { + //assume assets are in experiment.baseDir + var assets = new Assets({}, path.normalize(this.baseDir + "/..")); + if (assets.JSONFileExists()) { + logger.log("info", "assets file found, loading"); + assets.loadFromFile(); + } //create new variation var varArgs = _.clone(this.attributes); - varArgs['js_component'] = this.getJS(); + varArgs['js_component'] = String(ejs.render(this.getJS(), { + locals: { + assets: assets.attributes + } + })); varArgs['experiment_id'] = experiment.attributes.id; var self = this; @@ -58,9 +70,19 @@ Variation.prototype.createRemote = function(client, remote) { } Variation.prototype.updateRemote = function(client) { - //create new experiment + //assume assets are in experiment.baseDir + var assets = new Assets({}, path.normalize(this.baseDir + "/..")); + if (assets.JSONFileExists()) { + logger.log("info", "assets file found, loading"); + assets.loadFromFile(); + } + var varArgs = _.clone(this.attributes); - varArgs['js_component'] = this.getJS(); + varArgs['js_component'] = String(ejs.render(this.getJS(), { + locals: { + assets: assets.attributes + } + })); var self = this; return client.updateVariation(varArgs).then(function(variationAttrs) {