Comparing version 0.0.4 to 0.0.5
@@ -22,3 +22,6 @@ /*! | ||
time: '2013-06-25 01:12:22', | ||
age: 29 | ||
age: 29, | ||
sid1: 123, | ||
sid2: '123', | ||
sid3: 'foo' | ||
}; | ||
@@ -40,2 +43,5 @@ | ||
var ruleRequireFalse = {not_exists: "string", required: false}; | ||
var ruleRegex1 = {sid1: /^\d+$/}; | ||
var ruleRegex2 = {sid2: /^\d+$/}; | ||
var ruleRegex3 = {sid3: /^\d+$/}; | ||
@@ -89,2 +95,12 @@ suite | ||
.add('rules pass: {age: /^\\d+$/}', function () { | ||
p.verify(data, ruleRegex1); | ||
}) | ||
.add('rules pass: {age: {type: /^\\d+$/}}', function () { | ||
p.verify(data, ruleRegex2); | ||
}) | ||
.add('rules fail: {age: {type: /^\\d+$/}}', function () { | ||
p.verify(data, ruleRegex3); | ||
}) | ||
// add listeners | ||
@@ -91,0 +107,0 @@ .on('cycle', function (event) { |
0.0.5 / 2013-08-06 | ||
================== | ||
* support RegExp rule | ||
0.0.4 / 2013-07-01 | ||
@@ -3,0 +8,0 @@ ================== |
@@ -57,6 +57,8 @@ /*! | ||
var TYPES = { | ||
function createRegExpFunction(re) { | ||
return function regexpCheck(value) { | ||
return !re.test(value) ? ('should match ' + re) : undefined; | ||
}; | ||
} | ||
}; | ||
/** | ||
@@ -84,2 +86,3 @@ * Verify data with rules. | ||
* // key8: { type: parameter.Object, resource: 'User', rules: { name: 'string', age: 'number' } } | ||
* key9: /^\d+$/, // must match number or number string. | ||
* } | ||
@@ -141,2 +144,5 @@ * rules's keys must exists on `data`. If `data.key1` not exists, will got `missing_field` error. | ||
checkFunction = rule; | ||
} else if (rule instanceof RegExp) { | ||
// key: /\d+/ | ||
checkFunction = createRegExpFunction(rule); | ||
} else { | ||
@@ -153,2 +159,5 @@ empty = rule.empty; | ||
checkFunction = rule.type; | ||
} else if (rule.type instanceof RegExp) { | ||
// key: { type: /\d+/ } | ||
checkFunction = createRegExpFunction(rule.type); | ||
} | ||
@@ -158,6 +167,6 @@ } else if (rule.isDate) { | ||
checkFunction = exports.Date; | ||
} else if (rule.isId ) { | ||
} else if (rule.isId) { | ||
// key: { isId: true } | ||
checkFunction = exports.Id; | ||
} else if (rule.isDateTime ) { | ||
} else if (rule.isDateTime) { | ||
// key: { isDateTime: true } | ||
@@ -164,0 +173,0 @@ checkFunction = exports.DateTime; |
{ | ||
"name": "parameter", | ||
"version": "0.0.4", | ||
"version": "0.0.5", | ||
"description": "A parameter verify tools.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -39,2 +39,3 @@ parameter [![Build Status](https://secure.travis-ci.org/fengmk2/parameter.png)](http://travis-ci.org/fengmk2/parameter) [![Coverage Status](https://coveralls.io/repos/fengmk2/parameter/badge.png)](https://coveralls.io/r/fengmk2/parameter) | ||
* // key8: { type: parameter.Object, resource: 'User', rules: { name: 'string', age: 'number' } } | ||
* key9: /^\d+$/, // must match number or number string. | ||
* } | ||
@@ -63,3 +64,4 @@ * rules's keys must exists on `data`. If `data.key1` not exists, will got `missing_field` error. | ||
date: '2013-06-25', | ||
age: 29 | ||
age: 29, | ||
sid: 123, // or '123' | ||
}; | ||
@@ -71,3 +73,4 @@ | ||
age: '29', | ||
sex: 0 | ||
sex: 0, | ||
sid: '123foo' | ||
}; | ||
@@ -80,3 +83,4 @@ | ||
age: 'number', | ||
sex: { required: false, type: 'string' } | ||
sex: { required: false, type: 'string' }, | ||
sid: /^\d+$/ | ||
}; | ||
@@ -107,2 +111,6 @@ var errors = p.verify(data, rules); | ||
// message: 'expect string, but got number', | ||
// code: 'invalid' }, | ||
// { resource: 'Param', | ||
// field: 'sid', | ||
// message: 'should match /^\d+$/', | ||
// code: 'invalid' } ] | ||
@@ -116,16 +124,19 @@ ``` | ||
rules pass: {id: p.Id} x 6,023,826 ops/sec ±0.87% (99 runs sampled) | ||
rules pass: {id: {type: p.Id}} x 4,207,059 ops/sec ±0.92% (98 runs sampled) | ||
rules pass: {id: {idId: true}} x 4,101,462 ops/sec ±5.28% (92 runs sampled) | ||
rules pass: {date: p.Date} x 3,421,468 ops/sec ±1.19% (92 runs sampled) | ||
rules pass: {date: {type: p.Date}} x 3,577,401 ops/sec ±1.71% (92 runs sampled) | ||
rules pass: {date: {isDate: true}} x 3,893,278 ops/sec ±0.84% (100 runs sampled) | ||
rules pass: {time: p.DateTime} x 3,705,611 ops/sec ±2.07% (93 runs sampled) | ||
rules pass: {time: {type: p.DateTime}} x 3,734,069 ops/sec ±1.96% (93 runs sampled) | ||
rules pass: {time: {isDateTime: true}} x 3,739,484 ops/sec ±1.68% (92 runs sampled) | ||
rules pass: {age: "number"} x 6,098,496 ops/sec ±0.74% (95 runs sampled) | ||
rules pass: {age: {type: "number"}} x 6,391,140 ops/sec ±0.93% (92 runs sampled) | ||
rules pass: {nick: "string"} x 5,995,432 ops/sec ±0.70% (98 runs sampled) | ||
rules pass: {nick: {type: "string"}} x 6,215,072 ops/sec ±1.04% (96 runs sampled) | ||
rules pass: {not_exists: "string", required: false} x 1,175,066 ops/sec ±1.39% (98 runs sampled) | ||
rules pass: {id: p.Id} x 5,074,408 ops/sec ±3.18% (90 runs sampled) | ||
rules pass: {id: {type: p.Id}} x 3,076,881 ops/sec ±8.20% (86 runs sampled) | ||
rules pass: {id: {idId: true}} x 3,390,500 ops/sec ±1.98% (89 runs sampled) | ||
rules pass: {date: p.Date} x 2,843,970 ops/sec ±3.75% (91 runs sampled) | ||
rules pass: {date: {type: p.Date}} x 3,070,906 ops/sec ±2.18% (93 runs sampled) | ||
rules pass: {date: {isDate: true}} x 3,346,604 ops/sec ±2.97% (93 runs sampled) | ||
rules pass: {time: p.DateTime} x 3,073,399 ops/sec ±2.16% (92 runs sampled) | ||
rules pass: {time: {type: p.DateTime}} x 2,937,585 ops/sec ±4.53% (84 runs sampled) | ||
rules pass: {time: {isDateTime: true}} x 3,060,667 ops/sec ±1.75% (92 runs sampled) | ||
rules pass: {age: "number"} x 5,127,739 ops/sec ±3.26% (87 runs sampled) | ||
rules pass: {age: {type: "number"}} x 4,717,803 ops/sec ±2.44% (90 runs sampled) | ||
rules pass: {nick: "string"} x 3,803,510 ops/sec ±1.69% (88 runs sampled) | ||
rules pass: {nick: {type: "string"}} x 3,635,789 ops/sec ±1.95% (91 runs sampled) | ||
rules pass: {not_exists: "string", required: false} x 1,015,538 ops/sec ±2.17% (92 runs sampled) | ||
rules pass: {age: /^\d+$/} x 3,177,203 ops/sec ±2.41% (86 runs sampled) | ||
rules pass: {age: {type: /^\d+$/}} x 3,055,727 ops/sec ±2.01% (87 runs sampled) | ||
rules fail: {age: {type: /^\d+$/}} x 1,327,194 ops/sec ±2.52% (89 runs sampled) | ||
@@ -135,2 +146,16 @@ Fastest is rules pass: {age: {type: "number"}} | ||
## Authors | ||
```bash | ||
$ git summary | ||
project : parameter | ||
repo age : 6 weeks | ||
active : 3 days | ||
commits : 11 | ||
files : 13 | ||
authors : | ||
11 fengmk2 100.0% | ||
``` | ||
## License | ||
@@ -137,0 +162,0 @@ |
18287
304
178