app/assets/javascripts/validity.js in sprangular-0.0.1 vs app/assets/javascripts/validity.js in sprangular-0.1.0
- old
+ new
@@ -1,60 +1,101 @@
(function() {
+ var formatMessage, messages;
+
+ messages = {
+ required: "can't be blank",
+ greaterThan: "must be greater than %arg",
+ greaterThanOrEqual: "must be greater than or equal to %arg",
+ lessThan: "must be less than %arg",
+ lessThanOrEqual: "must be less than or equal to %arg",
+ regex: 'is invalid',
+ length: "length must be %length",
+ lengthGreaterThan: "length must be greater than %length",
+ lengthLessThan: "length must be less than %length",
+ number: "must be a number"
+ };
+
+ formatMessage = function(messageKey, args) {
+ var key, message, regex, value;
+ message = messages[messageKey];
+ for (key in args) {
+ value = args[key];
+ regex = RegExp("%" + key, "g");
+ message = message.replace(regex, value);
+ }
+ return message;
+ };
+
window.Validity = {
+ MESSAGES: messages,
RULES: {
required: function(object, attr) {
if (!object[attr]) {
- return "can't be blank";
+ return formatMessage('required');
}
},
greaterThan: function(object, attr, arg) {
if (!(Number(object[attr]) > arg)) {
- return "must be greater than " + arg;
+ return formatMessage('greaterThan', {
+ arg: arg
+ });
}
},
greaterThanOrEqual: function(object, attr, arg) {
if (!(Number(object[attr]) >= arg)) {
- return "must be greater than or equal to " + arg;
+ return formatMessage('greaterThanOrEqual', {
+ arg: arg
+ });
}
},
lessThan: function(object, attr, arg) {
if (!(Number(object[attr]) < arg)) {
- return "must be less than " + arg;
+ return formatMessage('lessThan', {
+ arg: arg
+ });
}
},
lessThanOrEqual: function(object, attr, arg) {
if (!(Number(object[attr]) <= arg)) {
- return "must be less than or equal to " + arg;
+ return formatMessage('lessThanOrEqual', {
+ arg: arg
+ });
}
},
regex: function(object, attr, arg) {
if (!String(object[attr]).match(arg)) {
- return 'is invalid';
+ return formatMessage('regex');
}
},
length: function(object, attr, arg) {
var length, value;
value = object[attr] || '';
if (typeof arg === 'number') {
if (value.length !== arg) {
- return "length must be " + arg;
+ return formatMessage('length', {
+ length: arg
+ });
}
} else if (typeof arg === 'object') {
if (length = arg['greaterThan']) {
if (value.length < length) {
- return "length must be greater than " + length;
+ return formatMessage('lengthGreaterThan', {
+ length: length
+ });
}
}
if (length = arg['lessThan']) {
if (value.length > length) {
- return "length must be less than " + length;
+ return formatMessage('lengthLessThan', {
+ length: length
+ });
}
}
}
},
number: function(object, attr) {
if (typeof object[attr] !== 'number') {
- return "must be a number";
+ return formatMessage('number');
}
}
},
_normalizeRules: function(rules) {
var attr, def, dict, self;