Example #1
0
function benchmark() {
    var dust = require('dustjs-linkedin');
    var fs = require('fs');
    
    var layout, howItWorks, html; 
    
    layout = fs.readFileSync('/data/Framework-Tests/node/layout.dustc', 'utf8');
    
    howItWorks = fs.readFileSync('/data/Framework-Tests/node/howItWorks.dustc', 'utf8');

    // console.log(layout);
        // console.log(howItWorks);

    
    //var compiledLayout = dust.compile(layout, 'layout');
    //var compiledHowItWorks = dust.compile(howItWorks, 'howItWorks');
    
    dust.loadSource(layout);
    dust.loadSource(howItWorks);
    
    dust.render('howItWorks.html', {host: 'justin.flipkey.net'}, function(err, output) {
        if(err) {
            console.log(err);
        }
        html = output;
    });
    
    this.res.end(html);
}
Example #2
0
  app.get(this.urlNamespace + '/sandbox/:testid', function(request, response) {
    var tests = exec.testgroup.tests,
        testId = request.params.testid,
        test  = tests[testId],
        fixtureContent,
        fixtureId,
        fixturePartialReference,
        templateData,
        harnessTemplate,
        harnessTemplateId;

    // Check if testid is valid and in the currently loaded testgroup
    if (!test || !test.harnessTemplate) {
      return response.status(404).json(
        { error: 'TestId ' + testId + ' does not exist' }
      );
    }

    // Load the test fixture (ie. @venus-fixture) content via Dust. Then,
    // modify fixtureTemplate by finding the closing 'body' tag, and prepending
    // it with a reference to the test fixture, using Dust partials.
    fixtureContent = test.annotations[testcase.annotation.VENUS_FIXTURE];
    fixtureId = 'fixture_' + testId;
    dust.loadSource(dust.compile(fixtureContent, fixtureId));
    fixturePartialReference = '<body>{>' + fixtureId + '/}';

    harnessTemplate = test.harnessTemplate;
    harnessTemplate = harnessTemplate.replace(/<body>/,
                                              fixturePartialReference);

    // Set template data, and render the Dust template
    harnessTemplateId = 'harness_template_' + testId;
    dust.loadSource(dust.compile(harnessTemplate, harnessTemplateId));
    templateData = {
      scriptIncludes     : test.url.includes.slice(0, -1),
      testcaseFile       : _.last(test.url.includes),
      testId             : testId,
      host               : host,
      port               : port
    };
    dust.render(harnessTemplateId, templateData, function(err, out) {
      if(err) {
        response.status(500).json(
          { error: 'Harness template for test ' + testId + ' failed to render' }
        );
      }
      response.send(out);
    });
  });
Example #3
0
	templates.forEach(function(template) {
		console.log('compiling', template);
		var compiled = dust.compile(e[template], template);	
		if (compiled) {
			dust.loadSource(compiled);
		}
	});
Example #4
0
  app.get(this.urlNamespace + '/:testid', function(request, response) {
    var tests = exec.testgroup.tests,
    testId = request.params.testid,
    test  = tests[testId],
    harnessTemplate,
    harnessTemplateId,
    templateData;

    // Check if testid is valid and in the currently loaded testgroup
    if (!test) {
      return response.status(404).json(
        { error: 'TestId ' + testId + ' does not exist' }
      );
    }

    // Set template data, and render the Dust template
    templateData = {
      postTestResultsUrl: exec.urlNamespace + '/results/' + testId,
      testSandboxUrl: exec.urlNamespace + '/sandbox/' + testId,
      testId: testId
    };
    harnessTemplate = exec.config.loadTemplate('default');
    harnessTemplateId = 'harness-' + testId;
    dust.loadSource(dust.compile(harnessTemplate, harnessTemplateId));
    dust.render(harnessTemplateId, templateData, function(err, out) {
      if (err) {
        response.status(500).json({
          error: 'Cannot render harness for test ' + testId
        });
      }
      response.send(out);
    });
  });
Example #5
0
 t.test('do nested helpers work?', function (t) {
     dustjs.loadSource(dustjs.compile('{@useContent bundle="test"}{@useContent bundle="test2"}{@message key="hello" /}{/useContent}{/useContent}', 'nested'));
     dustjs.render('nested', dustjs.context({}, { option: true }), function (err, out) {
         t.equal(out, "this morning!");
         t.end();
     });
 });
Example #6
0
// check final
function checkfinal() {
    if (++gnum == gout.length) {
        var model = {   
            "dtime": new Date() ,
            "report": gout 
        };
        if (gfmt && gfmt != 'html') {
            output(JSON.stringify(model));
        }
        else {
            var tmpl = templ;
            if (gtmpl) {
                try {
                    tmpl = fs.readFileSync( gtmpl, 'utf8');
                }
                catch(e) {
                    except("Template read exception:" + e);
                }
            }
            var compiled = dust.compile(tmpl, "intro");
            dust.loadSource(compiled);
            dust.render("intro", model, function(err, out) {
                if (err) except(err);
                else output(out);
            });
        }
    }
}
Example #7
0
 t.test('do empty helpers work?', function (t) {
     var tmpl = dustjs.loadSource(dustjs.compile('!{@useContent bundle="test" /}!'));
     dustjs.render(tmpl, dustjs.context({}, { option: true }), function (err, out) {
         t.equal(out, "!!");
         t.end();
     });
 });
Example #8
0
test('bundle annotation', function (t) {
    helper(function(context, bundle, cont) {
        t.same(context.options.option, true);
        t.pass('loader got called');
        if (bundle == 'test') {
            cont(null, {"hello": "world"});
        } else {
            cont(null, {"hello": "this morning!"});
        }
    }).registerWith(dustjs);

    messages.registerWith(dustjs);

    dustjs.helpers.wompwomp = function (chunk, context, blocks, params) {
        return chunk.map(function (chunk) {
            chunk.end(context.get('intl.bundle'));
        });
    }

    dustjs.loadSource(dustjs.compile('{@useContent bundle="test"}{@wompwomp/}{/useContent}', 'test'));
    dustjs.render('test', dustjs.context({}, { option: true }), function (err, out) {
        t.error(err);
        t.equal(out, "test");
        t.end();
    });
});
Example #9
0
	"/render" :  function(request, response){
		var body = response.body;
		var errorText;
		if(body && body.id && body.compiledMarkup){
			dust.loadSource(body.compiledMarkup);
            if(body.data){
                try{
                    body.data = JSON.parse(body.data);
                }catch(e){
                    resolveError(response, e);
                }

            }
			dust.render(body.id, body.data, function(error, html){
				if(error){
                    resolveError(response, error);
				}else{
					response.writeHead(200, mimeMapper.html);
					response.end(html);
				}
			});
		}else{
			errorText = "파라메터가 올바르지 않습니다.";
			if(!body){
				errorText += " 파라메터 자체가 존재하지 않습니다.";
			}else{
				errorText = errorText + "id와 compiledMarkup은 반드시 존재해야 합니다.";
				errorText = errorText + " id : " + body.id + ", compiledMarkup : " + body.compiledMarkup
			}
			response.writeHead(400, mimeMapper.text);
			response.end(errorText);		
		}
		
	}
Example #10
0
    'dust': function(file, data, callback, context) {
        var inputTemplate = file.readAsString();
        var templateName = file.getName();
        var compiled;

        try
        {
            compiled = dust.compile(inputTemplate, templateName, false);
            dust.loadSource(compiled);
        }
        catch(e) {
            throw new Error('The content of "' + file.getAbsolutePath() + '" is not a valid Dust template. Exception: ' + e);
        }

        try {
            dust.render(
                templateName,
                data,
                function(err, out) {
                    callback(err, out);
                });
        }
        catch(e) {
            callback(e);
            
        }
    },
Example #11
0
	_.each (_templates, function (_descriptor, _identifier) {
		var _path = path.join (configuration.renderersRoot, _identifier + ".dust");
		var _source = fs.readFileSync (_path, {encoding : "utf-8"});
		var _source = dust.compile (_source, _identifier);
		dust.loadSource (_source);
		reloader.watchFile (_path);
	});
Example #12
0
Application.prototype.load_views = function ( view_path ) {
  if ( !view_path && this.views_loaded && this._config.cache_views !== false ) return true;

  view_path = view_path || '';
  var full_view_path = path.join( this.path_to_views, view_path );
  var stats          = null;

  try {
    stats = fs.statSync( full_view_path );
  }
  catch(e) {
    this.log( 'Views folder is not found. Skip loading views', 'warning' );
  }

  if ( stats && stats.isDirectory() ) fs.readdirSync( full_view_path ).forEach( function( file ) {
    this.load_views( path.join( view_path, file ) );
  }, this );

  else if ( stats && stats.isFile() && this._views_mtime[ view_path ] != stats.mtime.getTime() ) {

    this.log( 'Load view `%s`'.format( view_path ), 'trace' );

    var template  = fs.readFileSync( full_view_path, 'utf8' );
    var compiled  = dust.compile( template, view_path );

    this._views_mtime[ view_path ] = stats.mtime.getTime();
    dust.loadSource( compiled );
  }

  if ( !view_path ) {
    this.views_loaded = true;
    if ( stats ) this.log( 'Views are loaded', 'info' );
    this.emit( 'views_are_loaded' );
  }
};
Example #13
0
app.get("/", function(req, res) {

    // TODO: cache index in prod VS no cache in dev

    if(!compiledIndexPage) {
        compiledIndexPage = dust.compile(fs.readFileSync(__dirname + "/static/index.dust", "utf8"), "index");
        dust.loadSource(compiledIndexPage);
    }

    var data = {
        title: process.env.ARKHAIOS_TITLE || "Arkhaios",
        forkMe: process.env.ARKHAIOS_FORK_ME
    }

    if(process.env.ARKHAIOS_GA_UA && process.env.ARKHAIOS_GA_HOST) {
        data.googleAnalytics= {
            UA: process.env.ARKHAIOS_GA_UA,
            host: process.env.ARKHAIOS_GA_HOST
        }
    }

    dust.render("index", data, function(err, rendered) {
        if(err) {
            logger.error(err)
            res.send({reason: "non public"}, 500);
        } else {
//            res.contentType("text/html");
            res.send(rendered);
        }
    })
})
Example #14
0
function runit(tmpl, model, callback) {
	var compiled = dust.compile(tmpl, "test");
	dust.loadSource(compiled);
	var out = dust.render("test", model, function (err, result) {
		return callback(null, result);
	});
}
                                            dust.render(compileid, data.message.Parameters, function (errRendered, outRendered) {
                                                if (errRendered) {
                                                    logger.error("Error in rendering " + errRendered);
                                                }
                                                else {

                                                    var renderedTemplate = "";
                                                    var juiceOptions = {
                                                        applyStyleTags: true
                                                    }

                                                    if (resPickTemp.styles.length > 0) {
                                                        for (var i = 0; i < resPickTemp.styles.length; i++) {
                                                            if (i == 0) {
                                                                renderedTemplate = outRendered;
                                                            }

                                                            //console.log(resPickTemp.styles[i].content);
                                                            logger.info("Rendering is success " + resPickTemp.styles[i].content);

                                                            renderedTemplate = juice.inlineContent(renderedTemplate, resPickTemp.styles[i].content, juiceOptions);
                                                            if (i == (resPickTemp.styles.length - 1)) {

                                                                if (resPickTemp.filetype.toLowerCase() == 'html') {
                                                                    mailOptions.html = renderedTemplate;
                                                                } else {
                                                                    mailOptions.text = renderedTemplate;
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else {
                                                        console.log("Rendering Done");

                                                        if (resPickTemp.filetype.toLowerCase() == 'html') {
                                                            mailOptions.html = outRendered;
                                                        } else {
                                                            mailOptions.text = outRendered;
                                                        }

                                                        //SendMail(mailOptions, data);
                                                    }

                                                    if (resPickTemp.content.subject) {

                                                        var compilesubid = uuid.v4();
                                                        var compiledsub = dust.compile(resPickTemp.content.subject, compilesubid);
                                                        dust.loadSource(compiledsub);
                                                        dust.render(compilesubid, data.message.Parameters, function (errsubRendered, outsubRendered) {
                                                            mailOptions.subject = outsubRendered;
                                                            SendMail(mailOptions, data);
                                                        });

                                                    } else {

                                                        SendMail(mailOptions, data);
                                                    }
                                                }
                                            });
Example #16
0
	/* Load template from filesystem */
	function do_load(file, name) {
		var name = name || file;
		if(!file) throw new Error("file not defined");
		var c = do_compile(file, name);
		dust.loadSource(c);
		if(_debug) console.log("[dustfs] [" + name + "] Template loaded: " + file);
		return c;
	}
Example #17
0
   fs.readFile(path.join(__dirname, 'emailified',  f + '.html'), function(err, raw) {
      if (err) {
         throw err;
      }

      var compiled = dust.compile(raw.toString(), 'mail/' + f);
      dust.loadSource(compiled);
   });
Example #18
0
 t.test('does loader get called?', function (t) {
     dustjs.loadSource(dustjs.compile('{@useContent bundle="test"}{@message key="hello" /}{/useContent}', 'test'));
     dustjs.render('test', dustjs.context({}, { option: true }), function (err, out) {
         t.equal(out, "world");
         t.pass("loader is called");
         t.end();
     });
 });
Example #19
0
var loadCustom = function(type, engine) {
	type = 'custom' + type;
	for (var k in engine[type + 's']) {
		var name = type + '_' + k;
		var compiled = dust.compile(engine[type + 's'][k], name);
		if (compiled) {
			dust.loadSource(compiled);
		}
	}
};
    plugin.compile(content, 'dirs/dir/template.dust', function(error, data) {
      expect(error).not.to.be.ok;

      dust.loadSource(data);
      dust.render('template', {'name': 'Batman'}, function(error, output) {
        expect(error).not.to.be.ok;
        expect(output).to.equal(expected);
        done();
      });
    });
Example #21
0
Bar.prototype.loadTemplate = function(data, status, xhr) {
  var self = this;
  console.log('loadTemplate');
  this.compiledTemplate = dust.compile(data, 'bar-chart'); 
  dust.loadSource(this.compiledTemplate);

  if (this.data) {
    this.create(this.data);
  }
};
Example #22
0
  fs.readdirSync(directory).forEach((t) => {
    if (t.match(/\.dust$/)) {
      const label = path.basename(t, '.dust');
      // THESE GO INTO THE DUST MODULE and OUR TEMPLATE NAMES COLLIDE.
      // so you can't (safely) generate multiple languages in parallel.
      const compiled = dust.compile(fs.readFileSync(path.join(directory, t), 'utf8'), label);

      dust.loadSource(compiled);
      dusts[label] = 1;
    }
  });
Example #23
0
    partials.forEach(function(v, i) {
      var contents = grunt.file.read(v);
      var name = path.basename(v, path.extname(v));

      if(me.options.templateEngine === 'handlebars') {
        Handlebars.registerPartial(name, contents);
      } else if(me.options.templateEngine === 'dust') {
        var templateName = name;
        var source = dust.compile(contents, templateName);
        dust.loadSource(source);
      }
    });
Example #24
0
		'dust': function () {
			var file = this,
				name = path.join(this.params.parent || '', this.params.path.replace(/^templates(\/|\\|$)/, ''), path.basename(this.basename, '.dust')),
				template,
				moduleRx = /\{@my([^\}]*)\}/g,
				moduleNameRx = /module="([^"]*)"/,
				BOMcheck = /^\uFEFF/,
				modules;

			if (this.content.match(BOMcheck)) {
				this.errors = [
					{
						reason: 'BOM mark detected!',
						file: this.path,
						line: 1,
						character: 1
					}
				];

				this.content = this.content.replace(BOMcheck, '');
			}

			name = name.replace(/\\/g, '/');

			this.modules = [];

			// проверяем, подключаются ли в шаблоне модули
			modules = this.content.match(moduleRx);

			if (modules) {
				// если подключаются, находим их названия
				modules.forEach(function (module) {
					module = module.match(moduleNameRx)[1];

					if (module && file.modules.indexOf(module) === -1) {
						file.modules.push(module);
					}
				});
			}

			try {
				template = dust.compile(this.content, name);
				dust.loadSource(template);
			} catch (e) {
				sys.log('Dust syntax error\n\tFile: ' + this.path);
				sys.puts('\t' + e.message);
				throw e;
			}

			this.params.type = 'js';

			return template;
		}
Example #25
0
function tpl(tpl, data)
{
	var compiledTemplate = dust.compile(tpl, tpl);
	dust.loadSource(compiledTemplate);
	var output = '';
	dust.render(tpl, data, function(err, str) {
		if (err) {
			throw err;
		}
		output = str;
	});
	return output;
}
Example #26
0
			dust.onLoad(fullname, function(err, src) {
				if (err)
					return chunk.setError(err);

				if (!dust.cache[namespace])
					dust.cache[namespace] = {};

				if (!dust.cache[namespace][name])
					dust.loadSource(dust.compile(src, fullname));


				dust.cache[namespace][name](chunk, context).end();
			});			
Example #27
0
  var render = function render(data, output, callback) {
    var tmplLibrary = fs.readFileSync(path.join(__dirname, templateLibrary), "UTF-8");
    var tmplSteps = fs.readFileSync(path.join(__dirname, templateSteps), "UTF-8");
    var insertionTemplate = fs.readFileSync(path.join(__dirname, templateInsertion), "UTF-8").toString();
    var data2 = JSON.parse(data);

    //check for existing output and check if data contains steps
    if (output && data2 && data2.feature.scenarios.length > 0 && data2.feature.scenarios[0].steps.length) {
      //use regex and replace to find first scenario comment and append insertion template
      output = output.replace(/(\/\*Scenario:.*\*\/)/, insertionTemplate + "$1");
    } else if (output === null) {
      output = "{" + ">library/" + "}"; //jsdoc dust parsing error occurs if not expressed this way
    }

    dust.optimizers.format = function formatReturnNode(ctx, node) {
      return node;
    };
    dust.loadSource(dust.compile(tmplSteps, "steps", false));
    dust.loadSource(dust.compile(tmplLibrary, "library", false));
    dust.loadSource(dust.compile(output, "output", false));
    dust.render("output", data2, callback);
  };
  compile: function compile(html) {
    // Disable white space removal, by not using this the html is not valid because
    // of Javascript comments in the source
    dust.optimizers.format = (ctx, node) => node;

    // Compile the template
    const compiled = dust.compile(html, 'template');

    // Load the compiled source into Dust
    dust.loadSource(compiled);

    return compiled;
  },
Example #29
0
function genTest(uuid) {    
    var sutFilePath = store[uuid].filePath,
        testdir = 'tests/unit/',
        testFilePath = util.format(testdir+'%s-%s.js', sutFilePath, uuid),
        template = 'template/test.template',
        compiled = dust.compile(fs.readFileSync(template,'UTF-8'), "template"),
        params,
        result;
        
    params = {
        testFilePath: testFilePath,
        filePath: path.relative(path.dirname(testFilePath), sutFilePath),
        fileName: path.basename(sutFilePath),
        funName: store[uuid].funName
    };

    //input
    params.arguments = [];
    store[uuid]['input'].arguments.forEach(function(arg) {
        
            
        /*if(typeof arg.value === 'function') {
            return;
        }
        else */if(arg.value === undefined)
            params.arguments.push({name: arg.name, value: 'undefined'});
        else
            params.arguments.push({name: arg.name, value: JSON.stringify(arg.value)});
    });

    //return
    if(store[uuid]['output']['return'].name) {
        params.return = JSON.stringify(store[uuid]['output']['return'].value);
    }

    //callback
    if(store[uuid]['callback'].name) {
        params.callback = {};
        params.callback.name = store[uuid]['callback'].name;
        params.callback.arguments = store[uuid]['callback'].arguments;
    }

    //render
    dust.loadSource(compiled);
    dust.render("template", params, function(err, out) {
        result = beautify(out, { indent_size: 4 });
    });
    
    mkdirp.sync(path.dirname(testFilePath));
    fs.writeFileSync(testFilePath, result);
}
Example #30
0
 _.each(self.components, function(component) {
     try {
         var filepath = path.join(templatePath, component.page.template);
         var template =  fs.readFileSync(filepath, "utf8");
         var name = component.page.template.slice(0, component.page.template.indexOf('.'));
         var compiled = dust.compile(template, name, true);
         dust.loadSource(compiled);
     }
     catch (e) {
         var message = '\nCouldn\'t compile Dust template at "' + filepath + '". ' + e + '\n';
         console.log(message);
         throw e;
     }
 });