Skip to content

Commit 8a0b744

Browse files
committed
Merge pull request #42 from eclecto/master
Parse EJS when pushing a variation
2 parents 283c361 + 260f700 commit 8a0b744

1 file changed

Lines changed: 25 additions & 3 deletions

File tree

lib/variation.js

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
var util = require('util');
22
var path = require('path');
33
var _ = require("lodash");
4+
var ejs = require("ejs");
45

56
var fileUtil = require("./file-util");
67
var logger = require("./logger");
78
var readConfig = require("./read-config");
89
var OptimizelyClient = require("optimizely-node-client");
910
var OptCLIBase = require("./optcli-base");
11+
var Assets = require('./assets');
1012

1113
function Variation(attributes, baseDir) {
1214
Variation.super_.call(this, attributes, baseDir);
@@ -38,10 +40,20 @@ Variation.prototype.getJS = function() {
3840
}
3941

4042
Variation.prototype.createRemote = function(client, remote) {
43+
//assume assets are in experiment.baseDir
44+
var assets = new Assets({}, path.normalize(this.baseDir + "/.."));
45+
if (assets.JSONFileExists()) {
46+
logger.log("info", "assets file found, loading");
47+
assets.loadFromFile();
48+
}
4149

4250
//create new variation
4351
var varArgs = _.clone(this.attributes);
44-
varArgs['js_component'] = this.getJS();
52+
varArgs['js_component'] = String(ejs.render(this.getJS(), {
53+
locals: {
54+
assets: assets.attributes
55+
}
56+
}));
4557
varArgs['experiment_id'] = experiment.attributes.id;
4658

4759
var self = this;
@@ -58,9 +70,19 @@ Variation.prototype.createRemote = function(client, remote) {
5870
}
5971

6072
Variation.prototype.updateRemote = function(client) {
61-
//create new experiment
73+
//assume assets are in experiment.baseDir
74+
var assets = new Assets({}, path.normalize(this.baseDir + "/.."));
75+
if (assets.JSONFileExists()) {
76+
logger.log("info", "assets file found, loading");
77+
assets.loadFromFile();
78+
}
79+
6280
var varArgs = _.clone(this.attributes);
63-
varArgs['js_component'] = this.getJS();
81+
varArgs['js_component'] = String(ejs.render(this.getJS(), {
82+
locals: {
83+
assets: assets.attributes
84+
}
85+
}));
6486

6587
var self = this;
6688
return client.updateVariation(varArgs).then(function(variationAttrs) {

0 commit comments

Comments
 (0)