Skip to content

Commit 0d45325

Browse files
committed
Add EACHSCHEMA([group], fn(group, name, schema)).
1 parent 92df92d commit 0d45325

4 files changed

Lines changed: 29 additions & 6 deletions

File tree

builders.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2185,6 +2185,24 @@ exports.load = function(group, name, model) {
21852185
return model ? schema.make(model) : name ? schema : schemas[group];
21862186
};
21872187

2188+
exports.eachschema = function(group, fn) {
2189+
2190+
if (fn === undefined) {
2191+
fn = group;
2192+
group = undefined;
2193+
}
2194+
2195+
var groups = group ? [group] : Object.keys(schemas);
2196+
for (var i = 0, length = groups.length; i < length; i++) {
2197+
var schema = schemas[groups[i]];
2198+
if (!schema)
2199+
continue;
2200+
var collection = Object.keys(schema.collection);
2201+
for (var j = 0, jl = collection.length; j < jl; j++)
2202+
fn(schema.name, schema.collection[collection[j]].name, schema.collection[collection[j]]);
2203+
}
2204+
};
2205+
21882206
exports.getschema = function(group, name) {
21892207

21902208
if (!name) {

changes.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ BETA ======= 1.9.1 (HOTFIX)
1010
- added: MailMessage supports custom headers `message.headers = { key: 'value' }`
1111
- added: @{notranslate} --> disables view translation
1212
- added: F.mode('debug') or F.mode('release') --> changes a mode of the framework
13+
- added: EACHSCHEMA([group], prepare(group, name, schema))
1314

1415
- updated: MailMessage.bcc(email, [clear]) --> added clear
1516
- updated: MailMessage.cc(email, [clear]) --> added clear

index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,10 @@ global.NEWSCHEMA = function(group, name) {
151151
return Builders.newschema(group, name);
152152
};
153153

154+
global.EACHSCHEMA = function(group, fn) {
155+
return Builders.eachschema(group, fn);
156+
};
157+
154158
global.FUNCTION = function(name) {
155159
return framework.functions[name];
156160
};

test/test-builders.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -310,12 +310,12 @@ function test_ErrorBuilder() {
310310
var builder = new builders.ErrorBuilder();
311311

312312
builder.add('name');
313-
assert.ok(builder.errors[0].name === 'name' && builder.errors[0].error === 'default', name + 'add');
313+
assert.ok(builder.items[0].name === 'name' && builder.items[0].error === '@', name + 'add');
314314
builder.add('age', 'only number');
315-
assert.ok(builder.errors[1].name === 'age' && builder.errors[1].error === 'only number', name + 'add (custom message)');
315+
assert.ok(builder.items[1].name === 'age' && builder.items[1].error === 'only number', name + 'add (custom message)');
316316

317317
builder.remove('age');
318-
assert.ok(typeof(builder.errors[1]) === 'undefined', name + 'remove');
318+
assert.ok(typeof(builder.items[1]) === 'undefined', name + 'remove');
319319
assert.ok(builder.hasError(), name + 'hasError');
320320

321321
builder = new builders.ErrorBuilder(function(name) {
@@ -324,14 +324,14 @@ function test_ErrorBuilder() {
324324

325325
builder.add('name');
326326
builder.prepare();
327-
assert.ok(builder.errors[0].error === 'name', name + 'prepare');
327+
assert.ok(builder.items[0].error === 'name', name + 'prepare');
328328

329329
builder.clear();
330330
builder.add('name');
331-
assert.ok(builder.json() === '[{"name":"name","error":"name"}]', name + 'json');
331+
assert.ok(builder.output() === '[{"name":"name","error":"name"}]', name + 'json');
332332

333333
builder.add(new builders.ErrorBuilder().add('age'));
334-
assert.ok(builder.json() === '[{"name":"name","error":"name"},{"name":"age","error":"age"}]', name + 'add(ErrorBuilder)');
334+
assert.ok(builder.output() === '[{"name":"name","error":"name"},{"name":"age","error":"age"}]', name + 'add(ErrorBuilder)');
335335
assert.ok(builder.read('name') === 'name', name + 'read()');
336336
assert.ok(builder.hasError('name'), name + 'hasError(name)');
337337

0 commit comments

Comments
 (0)