Skip to content

Commit 9ee42aa

Browse files
committed
Added Capitalize2 schema type.
1 parent e2d890e commit 9ee42aa

3 files changed

Lines changed: 18 additions & 0 deletions

File tree

builders.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -585,6 +585,12 @@ SchemaBuilderEntity.prototype.$parse = function(name, value, required, custom) {
585585
return parseLength(lower, result);
586586
}
587587

588+
if ((/^(capitalize2)+(\(\d+\))?$/).test(lower)) {
589+
result.type = 3;
590+
result.subtype = 'capitalize2';
591+
return parseLength(lower, result);
592+
}
593+
588594
if ((/^(capitalize|camelcase|camelize)+(\(\d+\))?$/).test(lower)) {
589595
result.type = 3;
590596
result.subtype = 'capitalize';
@@ -1673,6 +1679,9 @@ SchemaBuilderEntity.prototype.prepare = function(model, dependencies) {
16731679
case 'capitalize':
16741680
tmp = tmp.capitalize();
16751681
break;
1682+
case 'capitalize2':
1683+
tmp = tmp.capitalize(true);
1684+
break;
16761685
case 'lowercase':
16771686
tmp = tmp.toLowerCase();
16781687
break;
@@ -1819,6 +1828,9 @@ SchemaBuilderEntity.prototype.prepare = function(model, dependencies) {
18191828
case 'capitalize':
18201829
tmp = tmp.capitalize();
18211830
break;
1831+
case 'capitalize2':
1832+
tmp = tmp.capitalize(true);
1833+
break;
18221834
case 'lowercase':
18231835
tmp = tmp.toLowerCase();
18241836
break;
@@ -4423,6 +4435,9 @@ function convertorcompile(schema, data, key) {
44234435
case 'capitalize':
44244436
obj.fn = (val, obj) => $convertstring(val, obj).capitalize();
44254437
break;
4438+
case 'capitalize2':
4439+
obj.fn = (val, obj) => $convertstring(val, obj).capitalize(true);
4440+
break;
44264441
case 'email':
44274442
obj.fn = function(val, obj) {
44284443
var tmp = $convertstring(val, obj);

changes.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
- added: new schema operations: `schema.setInsert()` and `schema.setUpdate()`
55
- added: `RESTBuilder.patch([data])`
66
- added: `CONVERT(obj, schema)` for quick converting values like Schema (more in docs.)
7+
- added: `Capitalize2` schema type which converts only the first char
78

89
- fixed: mail `message.manually()`
910

test/test-builders.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ function test_Schema() {
366366
var NewTypes = NEWSCHEMA('NewTypes').make(function(schema) {
367367
schema.define('capitalize', 'Capitalize');
368368
schema.define('capitalize10', 'Capitalize(10)');
369+
schema.define('capitalize2', 'Capitalize2');
369370
schema.define('lower', 'Lower');
370371
schema.define('lower10', 'Lower(10)');
371372
schema.define('upper', 'Upper');
@@ -385,6 +386,7 @@ function test_Schema() {
385386
var res = schema.make(obj);
386387
assert.ok(res.capitalize === 'Total FraMEWOrk', 'SchemaBuilder: Capitalize');
387388
assert.ok(res.capitalize10 === 'Total FraM', 'SchemaBuilder: Capitalize(10)');
389+
assert.ok(res.capitalize2 === 'Total fraMEWOrk', 'SchemaBuilder: Capitalize2');
388390
assert.ok(res.lower === 'total framework', 'SchemaBuilder: Lower');
389391
assert.ok(res.lower10 === 'total fram', 'SchemaBuilder: Lower(10)');
390392
assert.ok(res.upper === 'TOTAL FRAMEWORK', 'SchemaBuilder: Upper');

0 commit comments

Comments
 (0)