Skip to content

Commit

Permalink
Commit 75 (v0.9.75 - Beta)
Browse files Browse the repository at this point in the history
Several new and improved documentation topics:

- http://www.jsviews.com/#views JsRender view hierarchy
- http://www.jsviews.com/#getindex Iterating over arrays: accessing the array index
- http://www.jsviews.com/#contextualparams Contextual parameters
- http://www.jsviews.com/#parentdata Accessing parent data
- http://www.jsviews.com/#apps Building apps
- http://www.jsviews.com/#jsrmodel Data / View Model
- http://www.jsviews.com/#compiletmpl Using templates
- http://www.jsviews.com/#d.templates Registering templates: $.templates()
- http://www.jsviews.com/#helpers Using helpers
- http://www.jsviews.com/#helpersapi Registering helpers: $.views.helpers()
- http://www.jsviews.com/#converters Using converters
- http://www.jsviews.com/#convertersapi Registering converters: $.views.converters()

Unit tests
- Many new unit tests added, especially for Browserify scenarios

Bug fixes

- BorisMoore/jsrender#295 Issue with Browserify when loading
  jQuery statically, and JsRender/JsViews as a Browserify module
  • Loading branch information
BorisMoore committed Apr 3, 2016
1 parent de0fd3f commit 8d17184
Show file tree
Hide file tree
Showing 46 changed files with 143,149 additions and 208 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
**/.*
node_modules
bower_components
test/browserify/bundles/*.js
*.config
Scripts
14 changes: 7 additions & 7 deletions jquery.observable.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/*! JsObservable v0.9.74 (Beta): http://jsviews.com/#jsobservable */
/*! JsObservable v0.9.75 (Beta): http://jsviews.com/#jsobservable */
/*
* Subcomponent of JsViews
* Data change events for data-linking
Expand All @@ -13,16 +13,16 @@
// global var is the this object, which is window when running in the usual browser environment
var $ = global.jQuery;

if (typeof define === "function" && define.amd) { // AMD script loader, e.g. RequireJS
define(["jquery"], function($) {
return factory(global, $); // Require jQuery
});
} else if (typeof exports === "object") { // CommonJS e.g. Browserify
if (typeof exports === "object") { // CommonJS e.g. Browserify
module.exports = $
? factory(global, $)
: function($) { // If no global jQuery, take jQuery passed as parameter: require("jsobservable")(jQuery)
return factory(global, $);
};
} else if (typeof define === "function" && define.amd) { // AMD script loader, e.g. RequireJS
define(["jquery"], function($) {
return factory(global, $); // Require jQuery
});
} else { // Browser using plain <script> tag
factory(global, false);
}
Expand Down Expand Up @@ -1073,4 +1073,4 @@ if (!$.observe) {
}

return $;
}, this));
}, window));
4 changes: 2 additions & 2 deletions jquery.observable.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion jquery.observable.min.js.map

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions jquery.views.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/*! jquery.views.js v0.9.74 (Beta): http://jsviews.com/ */
/*! jquery.views.js v0.9.75 (Beta): http://jsviews.com/ */
/*
* Interactive data-driven views using JsRender templates.
* Subcomponent of JsViews
Expand All @@ -17,16 +17,16 @@
// global var is the this object, which is window when running in the usual browser environment
var $ = global.jQuery;

if (typeof define === "function" && define.amd) { // AMD script loader, e.g. RequireJS
define(["jquery", "./jsrender", "./jquery.observable"], function($, jsr, jso) {
return factory(global, $, jsr, jso);
}); // Require jQuery, JsRender, JsObservable
} else if (typeof exports === "object") { // CommonJS e.g. Browserify
if (typeof exports === "object") { // CommonJS e.g. Browserify
module.exports = $
? factory(global, $)
: function($) { // If no global jQuery, take jQuery passed as parameter (with JsRender and JsObservable): require("jquery.views")(jQuery)
return factory(global, $);
};
} else if (typeof define === "function" && define.amd) { // AMD script loader, e.g. RequireJS
define(["jquery", "./jsrender", "./jquery.observable"], function($, jsr, jso) {
return factory(global, $, jsr, jso);
}); // Require jQuery, JsRender, JsObservable
} else { // Browser using plain <script> tag
factory(global, false);
}
Expand All @@ -44,7 +44,7 @@ var setGlobals = $ === false; // Only set globals if script block in browser (no
jsr = jsr || setGlobals && global.jsrender;
$ = $ || global.jQuery;

var versionNumber = "v0.9.74",
var versionNumber = "v0.9.75",
requiresStr = "JsViews requires ";

if (!$ || !$.fn) {
Expand Down Expand Up @@ -3011,4 +3011,4 @@ $viewsSettings.advanced({
});

return $;
}, this));
}, window));
4 changes: 2 additions & 2 deletions jquery.views.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion jquery.views.min.js.map

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions jsrender.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/*! JsRender v0.9.74 (Beta): http://jsviews.com/#jsrender */
/*! JsRender v0.9.75 (Beta): http://jsviews.com/#jsrender */
/*! **VERSION FOR WEB** (For NODE.JS see http://jsviews.com/download/jsrender-node.js) */
/*
* Best-of-breed templating in browser or on Node.js.
Expand All @@ -15,11 +15,7 @@
// global var is the this object, which is window when running in the usual browser environment
var $ = global.jQuery;

if (typeof define === "function" && define.amd) { // AMD script loader, e.g. RequireJS
define(function() {
return factory(global);
});
} else if (typeof exports === "object") { // CommonJS e.g. Browserify
if (typeof exports === "object") { // CommonJS e.g. Browserify
module.exports = $
? factory(global, $)
: function($) { // If no global jQuery, take optional jQuery passed as parameter: require('jsrender')(jQuery)
Expand All @@ -28,6 +24,10 @@
}
return factory(global, $);
};
} else if (typeof define === "function" && define.amd) { // AMD script loader, e.g. RequireJS
define(function() {
return factory(global);
});
} else { // Browser using plain <script> tag
factory(global, false);
}
Expand All @@ -44,7 +44,7 @@ var setGlobals = $ === false; // Only set globals if script block in browser (no

$ = $ && $.fn ? $ : global.jQuery; // $ is jQuery passed in by CommonJS loader (Browserify), or global jQuery.

var versionNumber = "v0.9.74",
var versionNumber = "v0.9.75",
jsvStoreName, rTag, rTmplString, topView, $views,

//TODO tmplFnsCache = {},
Expand Down Expand Up @@ -1216,7 +1216,7 @@ function onRenderError(e, view, fallback) {
message = fallback; // There is a settings.debugMode(handler) onError override. Call it, and use return value (if any) to replace message
}

return view && !view.linkCtx && view.linked ? $converters.html(message) : message;
return view && !view.linkCtx ? $converters.html(message) : message;
}

function error(message) {
Expand Down Expand Up @@ -2065,4 +2065,4 @@ if (jsrToJq) { // Moving from jsrender namespace to jQuery namepace - copy over
jsr.views.sub._jq($);
}
return $ || jsr;
}, this));
}, window));
4 changes: 2 additions & 2 deletions jsrender.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion jsrender.min.js.map

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions jsviews.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/*! jsviews.js v0.9.74 (Beta) single-file version: http://jsviews.com/ */
/*! jsviews.js v0.9.75 (Beta) single-file version: http://jsviews.com/ */
/*! includes JsRender, JsObservable and JsViews - see: http://jsviews.com/#download */

/* Interactive data-driven views using JsRender templates */
Expand All @@ -16,16 +16,16 @@
// global var is the this object, which is window when running in the usual browser environment
var $ = global.jQuery;

if (typeof define === "function" && define.amd) { // AMD script loader, e.g. RequireJS
define(["jquery"], function($) {
return factory(global, $);
}); // Require jQuery
} else if (typeof exports === "object") { // CommonJS e.g. Browserify
if (typeof exports === "object") { // CommonJS e.g. Browserify
module.exports = $
? factory(global, $)
: function($) { // If no global jQuery, take jQuery passed as parameter: require("jsviews")(jQuery)
return factory(global, $);
};
} else if (typeof define === "function" && define.amd) { // AMD script loader, e.g. RequireJS
define(["jquery"], function($) {
return factory(global, $);
}); // Require jQuery
} else { // Browser using plain <script> tag
factory(global, false);
}
Expand All @@ -47,7 +47,7 @@ if (!$ || !$.fn) {
throw "JsViews requires jQuery"; // We require jQuery
}

var versionNumber = "v0.9.74",
var versionNumber = "v0.9.75",

jsvStoreName, rTag, rTmplString, topView, $views, $observe, $observable,

Expand Down Expand Up @@ -1220,7 +1220,7 @@ function onRenderError(e, view, fallback) {
message = fallback; // There is a settings.debugMode(handler) onError override. Call it, and use return value (if any) to replace message
}

return view && !view.linkCtx && view.linked ? $converters.html(message) : message;
return view && !view.linkCtx ? $converters.html(message) : message;
}

function error(message) {
Expand Down Expand Up @@ -6008,4 +6008,4 @@ $viewsSettings.advanced({
});

return $;
}, this));
}, window));
6 changes: 3 additions & 3 deletions jsviews.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion jsviews.min.js.map

Large diffs are not rendered by default.

5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "jsviews",
"version": "v0.9.74",
"version": "v0.9.75",
"description": "Next-generation MVVM and MVP framework - built on top of JsRender templates. Bringing templates to life...",
"main": "./jsviews.js",
"author": {
Expand All @@ -16,7 +16,6 @@
"bugs": {
"url": "https://github.com/borismoore/jsviews/issues"
},
"scripts": {},
"keywords": [
"jsviews",
"jsrender",
Expand All @@ -33,7 +32,7 @@
"glob-stream": "^5.0.0",
"gulp": "^3.9.0",
"jquery": "^2.1.4",
"jsrender": "^0.9.74",
"jsrender": "^0.9.75",
"qunit": "^0.7.6"
},
"dependencies": {}
Expand Down
11 changes: 7 additions & 4 deletions test/browserify/1-unit-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
(function(undefined) {
"use strict";

browserify.done.one = true;

QUnit.module("Browserify - client code");

test("No jQuery global: require('jsrender')()", function() {
// ............................... Hide QUnit global jQuery .................................
var jQuery = global.jQuery;
global.jQuery = undefined;
// ............................... Hide QUnit global jQuery and any previous global jsrender.................................
var jQuery = global.jQuery, jsr = global.jsrender;
global.jQuery = global.jsrender = undefined;

// =============================== Arrange ===============================
var data = {name: "Jo"};
Expand All @@ -23,10 +25,11 @@ test("No jQuery global: require('jsrender')()", function() {
result += " " + (jsrender !== jQuery);

// ............................... Assert .................................
equal(result, "Name: Jo (name-template.html) true", "result");
equal(result, "Name: Jo (name-template.html) true", "result: No jQuery global: require('jsrender')()");

// ............................... Reset .................................
global.jQuery = jQuery; // Replace QUnit global jQuery
global.jsrender = jsr; // Replace any previous global jsrender
});

})();
9 changes: 6 additions & 3 deletions test/browserify/10-errors-unit-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
(function(undefined) {
"use strict";

browserify.done.ten = true;

QUnit.module("Browserify - client code");

test('Error cases for require() for JsRender, JsViews, JsObservable, JsRender templates', function() {
// ............................... Hide QUnit global jQuery .................................
var jQuery = global.jQuery;
global.jQuery = undefined;
// ............................... Hide QUnit global jQuery and any previous global jsrender.................................
var jQuery = global.jQuery, jsr = global.jsrender;
global.jQuery = global.jsrender = undefined;

var $jq, $jsr, tmpl, result;
// ................................ Act ..................................
Expand Down Expand Up @@ -154,6 +156,7 @@ test('Error cases for require() for JsRender, JsViews, JsObservable, JsRender te

// ............................... Reset .................................
global.jQuery = jQuery; // Replace QUnit global jQuery
global.jsrender = jsr; // Replace any previous global jsrender
});

})();
10 changes: 7 additions & 3 deletions test/browserify/11-errors-unit-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
(function(undefined) {
"use strict";

browserify.done.eleven = true;

QUnit.module("Browserify - client code");

test('More Errors for require() for JsRender, JsViews, JsObservable, JsRender templates', function() {
// ............................... Hide QUnit global jQuery .................................
var jQuery = global.jQuery;
global.jQuery = undefined;
// ............................... Hide QUnit global jQuery and any previous global jsrender.................................
var jQuery = global.jQuery, jsr = global.jsrender;
global.jQuery = global.jsrender = undefined;

var $jq, $jsr, tmpl, result;

Expand Down Expand Up @@ -67,6 +69,8 @@ test('More Errors for require() for JsRender, JsViews, JsObservable, JsRender te

// ............................... Reset .................................
global.jQuery = jQuery; // Replace QUnit global jQuery
global.jsrender = jsr; // Replace any previous global jsrender
});

})();

11 changes: 7 additions & 4 deletions test/browserify/2-unit-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
(function(undefined) {
"use strict";

browserify.done.two = true;

QUnit.module("Browserify - client code");

test("No jQuery global: require('jsrender')($)", function() {
// ............................... Hide QUnit global jQuery .................................
var jQuery = global.jQuery;
global.jQuery = undefined;
// ............................... Hide QUnit global jQuery and any previous global jsrender.................................
var jQuery = global.jQuery, jsr = global.jsrender;
global.jQuery = global.jsrender = undefined;

// =============================== Arrange ===============================
var data = {name: "Jo"};
Expand All @@ -24,10 +26,11 @@ test("No jQuery global: require('jsrender')($)", function() {
result += " " + ($jsr !== jQuery);

// ............................... Assert .................................
equal(result, "Name: Jo (name-template.html) true", "result");
equal(result, "Name: Jo (name-template.html) true", "result: No jQuery global: require('jsrender')($)");

// ............................... Reset .................................
global.jQuery = jQuery; // Replace QUnit global jQuery
global.jsrender = jsr; // Replace any previous global jsrender
});

})();
13 changes: 8 additions & 5 deletions test/browserify/3-unit-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
(function(undefined) {
"use strict";

browserify.done.three = true;

QUnit.module("Browserify - client code");

test("jQuery global: require('jsrender')", function() {
// ............................... Hide QUnit global jQuery .................................
var jQuery = global.jQuery;
global.jQuery = undefined;
// ............................... Hide QUnit global jQuery and any previous global jsrender.................................
var jQuery = global.jQuery, jsr = global.jsrender;
global.jQuery = global.jsrender = undefined;

// =============================== Arrange ===============================
var data = {name: "Jo"};
Expand All @@ -21,13 +23,14 @@ test("jQuery global: require('jsrender')", function() {

var result = tmpl(data);

result += " " + ($jsr !== jQuery);
result += " " + ($jsr !== jQuery) + " " + ($jsr === global.jQuery);

// ............................... Assert .................................
equal(result, "Name: Jo (name-template.html) true", "result");
equal(result, "Name: Jo (name-template.html) true true", "result: jQuery global: require('jsrender')");

// ............................... Reset .................................
global.jQuery = jQuery; // Replace QUnit global jQuery
global.jsrender = jsr; // Replace any previous global jsrender
});

})();
4 changes: 3 additions & 1 deletion test/browserify/4-unit-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
(function(undefined) {
"use strict";

browserify.done.four = true;

QUnit.module("Browserify - client code");

test("No jQuery global: require('jquery.observable')", function() {
Expand All @@ -27,7 +29,7 @@ test("No jQuery global: require('jquery.observable')", function() {
result += " " + ($jsr !== jQuery && $jsr === $jq);

// ............................... Assert .................................
equal(result, " new name true", "result");
equal(result, " new name true", "result: No jQuery global: require('jquery.observable')");

// ............................... Reset .................................
global.jQuery = jQuery; // Replace QUnit global jQuery
Expand Down
Loading

0 comments on commit 8d17184

Please sign in to comment.