twig.tests.js | |
---|---|
| |
twig.tests.jsThis file handles expression tests. (is empty, is not defined, etc...) | var Twig = (function (Twig) {
"use strict";
Twig.tests = {
empty: function(value) {
if (value === null || value === undefined) return true; |
Handler numbers | if (typeof value === "number") return false; // numbers are never "empty" |
Handle strings and arrays | if (value.length && value.length > 0) return false; |
Handle objects | for (var key in value) {
if (value.hasOwnProperty(key)) return false;
}
return true;
},
odd: function(value) {
return value % 2 === 1;
},
even: function(value) {
return value % 2 === 0;
},
divisibleby: function(value, params) {
return value % params[0] === 0;
},
defined: function(value) {
return value !== undefined;
},
none: function(value) {
return value === null;
},
'null': function(value) {
return this.none(value); // Alias of none
},
sameas: function(value, params) {
return value === params[0];
}
/*
constant ?
*/
};
Twig.test = function(test, value, params) {
if (!Twig.tests[test]) {
throw "Test " + test + " is not defined.";
}
return Twig.tests[test](value, params);
};
Twig.test.extend = function(test, definition) {
Twig.tests[test] = definition;
};
return Twig;
})( Twig || { } );
|