Esempio n. 1
0
exports['test_object_merge'] = function() {
  var a = {foo: 1};
  var b = {bar: 2};
  var c = {foo: 1, bar: 2};
  var out = misc.merge(a, b);
  assert.deepEqual(c, out);
  out = misc.merge(out, {});
  assert.deepEqual(c, out);
  out = misc.merge({}, out);
  assert.deepEqual(c, out);
};
Esempio n. 2
0
exports.setup = function(cb) {
  exports.config_current = merge(exports.config_current, defaults);
  function dostep() {
    var p = exports.config_files[poffset];
    fs.readFile(p, function(err, data) {
      if (!err) {
        var parsed = {};
        try {
          parsed = JSON.parse(data.toString());
        } catch(eerr) {
          cb(eerr);
        }
        exports.config_current = merge(exports.config_current, parsed);
      }

      poffset++;
      if (exports.config_files.length == poffset) {
        cb(null);
      }
      else {
        dostep();
      }
    });
  }
  dostep();
};
Esempio n. 3
0
exports['test_empty_object_merge'] = function() {
  var a = {};
  var b = {};
  var c = {};
  var out = misc.merge(a, b);
  assert.deepEqual(c, out);
};
Esempio n. 4
0
exports.render = function (template, ctx, req, res) {
  var c = merge(default_ctx, ctx);
  mu.render(template, c, {}, function(err, output) {
    if (err) {
      res.writeHead(500, {'Content-Type': 'text/plain'});
      res.end(err+'\n');
      throw err;
    }
    /* TODO: other content types */
    var ct = 'text/html; charset=utf-8';
    if (template.indexOf('.txt') != -1) {
      ct = 'text/plain';
    }
    if (template.indexOf('.xml') != -1) {
      ct = 'application/xml';
    }
    var headers = merge({'Content-Type': ct}, c.headers ? c.headers : {});
    res.writeHead(200, headers);
    output.addListener('data', function (c) {
      res.write(c);
    });
    output.addListener('end', function () { 
      res.end();
    });
  });
};