Skip to content

Commit

Permalink
Merge pull request #8 from paularmstrong/master
Browse files Browse the repository at this point in the history
Fixes for blocks and filters
  • Loading branch information
skid committed Aug 16, 2011
2 parents 75a53d3 + 1d88723 commit ee5faab
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 13 deletions.
12 changes: 6 additions & 6 deletions lib/filters.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ var helpers = require('./helpers'),
_dateFormats;

_dateFormats = {
_months: {
full: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
abbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
_days: {
_months: {
full: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
abbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
_days: {
full: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
abbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
alt: {'-1': 'Yesterday', 0: 'Today', 1: 'Tomorrow'}
},
},
// Day
d: function (input) {
return (input.getDate() < 10 ? '0' : '') + input.getDate();
Expand Down
22 changes: 19 additions & 3 deletions lib/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,21 +125,37 @@ exports.escape = function (variable, context) {
return chain.replace(/\n/g, '\\n').replace(/\r/g, '\\r');
};

exports.clone = function (obj) {
var clone = {},
key;
for (key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof(obj[key]) === "object") {
clone[key] = exports.clone(obj[key]);
} else {
clone[key] = obj[key];
}
}
}
return clone;
};

/**
* Merges b into a and returns a
*/
exports.merge = function (a, b) {
var key;
var key, temp = null;

if (a && b) {
temp = exports.clone(a);
for (key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
temp[key] = b[key];
}
}
}

return a;
return temp;
};

exports.isLiteral = isLiteral;
Expand Down
8 changes: 4 additions & 4 deletions lib/parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ exports.parse = function (data, tags) {
part = parts[part];
filter_name = part.match(/^\w+/);
if (/\(/.test(part)) {
filters.push({ name: filter_name[0], args: part.replace(/^\w+\(|\'|\"|,|\)$/g, '').split(' ') });
filters.push({ name: filter_name[0], args: part.replace(/^\w+\(|\'|\"|\)$/g, '').split(',') });
} else {
filters.push({ name: filter_name[0], args: [] });
}
Expand Down Expand Up @@ -101,9 +101,9 @@ function wrapFilter(variable, filter) {

if (filters.hasOwnProperty(filter.name)) {
args = [variable];
if (filter.args.length) {
args.push(filters.args);
}
filter.args.forEach(function (f) {
args.push('\'' + f + '\'');
});
output = '__filters.' + filter.name + '.apply(this, [' + args.toString() + '])';
}

Expand Down
21 changes: 21 additions & 0 deletions tests/helpers.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
var helpers = require('../lib/helpers');

exports.clone = function (test) {
var obj = { foo: 1, bar: 2, baz: { bop: 3 } },
out = helpers.clone(obj);

test.deepEqual(out, { foo: 1, bar: 2, baz: { bop: 3 } });
test.done();
};

exports.merge = function (test) {
var a = { foo: 1, bar: 2 },
b = { foo: 2 },
out;

out = helpers.merge(a, b);
test.deepEqual(out, { foo: 2, bar: 2 }, 'returns merged object');
test.deepEqual(a, { foo: 1, bar: 2 }, 'does not overwrite original object');

test.done();
};

0 comments on commit ee5faab

Please sign in to comment.