Skip to content

Commit 14aadb8

Browse files
committed
Add asSync and asAsync. Add fractal dataRendering...
1 parent 158cbc3 commit 14aadb8

File tree

7 files changed

+68
-26
lines changed

7 files changed

+68
-26
lines changed

index.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,22 @@ var _ = require('lodash');
22
var async = require('async');
33

44
// (argument: any) => boolean;
5-
var isSync = exports.isSync = function(argument) { return _.isFunction(argument) && argument.length == 0; };
5+
var isSync = exports.isSync = function(argument) { return _.isFunction(argument) && !!argument.__templatesSync; };
66

77
// (argument: any) => boolean;
8-
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && argument.length == 1; };
8+
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && !!argument.__templatesAsync; };
9+
10+
// (argument: Function) => Function;
11+
var asSync = exports.asSync = function(argument) {
12+
if (_.isFunction(argument)) argument.__templatesSync = true;
13+
return argument;
14+
};
15+
16+
// (argument: Function) => Function;
17+
var asAsync = exports.asAsync = function(argument) {
18+
if (_.isFunction(argument)) argument.__templatesAsync = true;
19+
return argument;
20+
};
921

1022
// (data: TData, callback: TCallback) => void;
1123
var dataRender = exports.dataRender = function(data, callback) {
@@ -14,8 +26,8 @@ var dataRender = exports.dataRender = function(data, callback) {
1426
if (data.prototype instanceof Double) data()()._render(callback);
1527
else data()._render(callback);
1628
} else if (data.__templatesInstance instanceof Content) data.__templatesInstance._render(callback);
17-
else if (data.length == 1) data(callback);
18-
else if (data.length == 0) callback(data());
29+
else if (data.__templatesAsync) data(function(result) { dataRender(result, callback); });
30+
else if (data.__templatesSync) dataRender(data(), callback);
1931
else callback(data);
2032
} else if (_.isObject(data)) {
2133

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "osws-templates",
3-
"version": "0.2.0",
3+
"version": "0.2.1",
44
"description": "Tools for generating, extending and rendering HTML.",
55
"keywords": [],
66
"author": "Open Source Web Standards <opensourcewebstandards@gmail.com> (http://osws.github.io/OSWS)",

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
# [OSWS](https://github.com/OSWS) [Templates](https://github.com/OSWS/OSWS-Templates) [0.2.0](https://github.com/OSWS/OSWS-Templates/wiki/0.2.0)
1+
# [OSWS](https://github.com/OSWS) [Templates](https://github.com/OSWS/OSWS-Templates) [0.2.1](https://github.com/OSWS/OSWS-Templates/wiki/0.2.1)
22

33
[documentation](https://github.com/OSWS/OSWS-Templates/wiki)

sources/index.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
11
// (argument: any) => boolean;
2-
var isSync = exports.isSync = function(argument) { return _.isFunction(argument) && argument.length == 0; };
2+
var isSync = exports.isSync = function(argument) { return _.isFunction(argument) && !!argument.__templatesSync; };
33

44
// (argument: any) => boolean;
5-
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && argument.length == 1; };
5+
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && !!argument.__templatesAsync; };
6+
7+
// (argument: Function) => Function;
8+
var asSync = exports.asSync = function(argument) {
9+
if (_.isFunction(argument)) argument.__templatesSync = true;
10+
return argument;
11+
};
12+
13+
// (argument: Function) => Function;
14+
var asAsync = exports.asAsync = function(argument) {
15+
if (_.isFunction(argument)) argument.__templatesAsync = true;
16+
return argument;
17+
};
618

719
// (data: TData, callback: TCallback) => void;
820
var dataRender = exports.dataRender = function(data, callback) {
@@ -11,8 +23,8 @@ var dataRender = exports.dataRender = function(data, callback) {
1123
if (data.prototype instanceof Double) data()()._render(callback);
1224
else data()._render(callback);
1325
} else if (data.__templatesInstance instanceof Content) data.__templatesInstance._render(callback);
14-
else if (data.length == 1) data(callback);
15-
else if (data.length == 0) callback(data());
26+
else if (data.__templatesAsync) data(function(result) { dataRender(result, callback); });
27+
else if (data.__templatesSync) dataRender(data(), callback);
1628
else callback(data);
1729
} else if (_.isObject(data)) {
1830

templates.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
11
define(['exports', 'lodash', 'async'], function(exports, _, async) {
22

33
// (argument: any) => boolean;
4-
var isSync = exports.isSync = function(argument) { return _.isFunction(argument) && argument.length == 0; };
4+
var isSync = exports.isSync = function(argument) { return _.isFunction(argument) && !!argument.__templatesSync; };
55

66
// (argument: any) => boolean;
7-
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && argument.length == 1; };
7+
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && !!argument.__templatesAsync; };
8+
9+
// (argument: Function) => Function;
10+
var asSync = exports.asSync = function(argument) {
11+
if (_.isFunction(argument)) argument.__templatesSync = true;
12+
return argument;
13+
};
14+
15+
// (argument: Function) => Function;
16+
var asAsync = exports.asAsync = function(argument) {
17+
if (_.isFunction(argument)) argument.__templatesAsync = true;
18+
return argument;
19+
};
820

921
// (data: TData, callback: TCallback) => void;
1022
var dataRender = exports.dataRender = function(data, callback) {
@@ -13,8 +25,8 @@ var dataRender = exports.dataRender = function(data, callback) {
1325
if (data.prototype instanceof Double) data()()._render(callback);
1426
else data()._render(callback);
1527
} else if (data.__templatesInstance instanceof Content) data.__templatesInstance._render(callback);
16-
else if (data.length == 1) data(callback);
17-
else if (data.length == 0) callback(data());
28+
else if (data.__templatesAsync) data(function(result) { dataRender(result, callback); });
29+
else if (data.__templatesSync) dataRender(data(), callback);
1830
else callback(data);
1931
} else if (_.isObject(data)) {
2032

templates.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)