Skip to content

Commit

Permalink
Add asSync and asAsync. Add fractal dataRendering...
Browse files Browse the repository at this point in the history
  • Loading branch information
ivansglazunov committed Jan 25, 2015
1 parent 158cbc3 commit 14aadb8
Show file tree
Hide file tree
Showing 7 changed files with 68 additions and 26 deletions.
20 changes: 16 additions & 4 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,22 @@ var _ = require('lodash');
var async = require('async');

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

// (argument: any) => boolean;
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && argument.length == 1; };
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && !!argument.__templatesAsync; };

// (argument: Function) => Function;
var asSync = exports.asSync = function(argument) {
if (_.isFunction(argument)) argument.__templatesSync = true;
return argument;
};

// (argument: Function) => Function;
var asAsync = exports.asAsync = function(argument) {
if (_.isFunction(argument)) argument.__templatesAsync = true;
return argument;
};

// (data: TData, callback: TCallback) => void;
var dataRender = exports.dataRender = function(data, callback) {
Expand All @@ -14,8 +26,8 @@ var dataRender = exports.dataRender = function(data, callback) {
if (data.prototype instanceof Double) data()()._render(callback);
else data()._render(callback);
} else if (data.__templatesInstance instanceof Content) data.__templatesInstance._render(callback);
else if (data.length == 1) data(callback);
else if (data.length == 0) callback(data());
else if (data.__templatesAsync) data(function(result) { dataRender(result, callback); });
else if (data.__templatesSync) dataRender(data(), callback);
else callback(data);
} else if (_.isObject(data)) {

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "osws-templates",
"version": "0.2.0",
"version": "0.2.1",
"description": "Tools for generating, extending and rendering HTML.",
"keywords": [],
"author": "Open Source Web Standards <opensourcewebstandards@gmail.com> (http://osws.github.io/OSWS)",
Expand Down
2 changes: 1 addition & 1 deletion readme.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# [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)
# [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)

[documentation](https://github.com/OSWS/OSWS-Templates/wiki)
20 changes: 16 additions & 4 deletions sources/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
// (argument: any) => boolean;
var isSync = exports.isSync = function(argument) { return _.isFunction(argument) && argument.length == 0; };
var isSync = exports.isSync = function(argument) { return _.isFunction(argument) && !!argument.__templatesSync; };

// (argument: any) => boolean;
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && argument.length == 1; };
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && !!argument.__templatesAsync; };

// (argument: Function) => Function;
var asSync = exports.asSync = function(argument) {
if (_.isFunction(argument)) argument.__templatesSync = true;
return argument;
};

// (argument: Function) => Function;
var asAsync = exports.asAsync = function(argument) {
if (_.isFunction(argument)) argument.__templatesAsync = true;
return argument;
};

// (data: TData, callback: TCallback) => void;
var dataRender = exports.dataRender = function(data, callback) {
Expand All @@ -11,8 +23,8 @@ var dataRender = exports.dataRender = function(data, callback) {
if (data.prototype instanceof Double) data()()._render(callback);
else data()._render(callback);
} else if (data.__templatesInstance instanceof Content) data.__templatesInstance._render(callback);
else if (data.length == 1) data(callback);
else if (data.length == 0) callback(data());
else if (data.__templatesAsync) data(function(result) { dataRender(result, callback); });
else if (data.__templatesSync) dataRender(data(), callback);
else callback(data);
} else if (_.isObject(data)) {

Expand Down
20 changes: 16 additions & 4 deletions templates.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
define(['exports', 'lodash', 'async'], function(exports, _, async) {

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

// (argument: any) => boolean;
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && argument.length == 1; };
var isAsync = exports.isAsync = function(argument) { return _.isFunction(argument) && !!argument.__templatesAsync; };

// (argument: Function) => Function;
var asSync = exports.asSync = function(argument) {
if (_.isFunction(argument)) argument.__templatesSync = true;
return argument;
};

// (argument: Function) => Function;
var asAsync = exports.asAsync = function(argument) {
if (_.isFunction(argument)) argument.__templatesAsync = true;
return argument;
};

// (data: TData, callback: TCallback) => void;
var dataRender = exports.dataRender = function(data, callback) {
Expand All @@ -13,8 +25,8 @@ var dataRender = exports.dataRender = function(data, callback) {
if (data.prototype instanceof Double) data()()._render(callback);
else data()._render(callback);
} else if (data.__templatesInstance instanceof Content) data.__templatesInstance._render(callback);
else if (data.length == 1) data(callback);
else if (data.length == 0) callback(data());
else if (data.__templatesAsync) data(function(result) { dataRender(result, callback); });
else if (data.__templatesSync) dataRender(data(), callback);
else callback(data);
} else if (_.isObject(data)) {

Expand Down
2 changes: 1 addition & 1 deletion templates.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 14aadb8

Please # to comment.