Commit 27850eac authored by Stephen Sawchuk's avatar Stephen Sawchuk

Merge pull request #578 from stephenplusplus/canjs_require

restructured canjs_require + code style.
parents d59b2617 ac44ecc6
/*global require*/ /*global require */
require.config({ require.config({
paths: { paths: {
jquery: '../bower_components/jquery/jquery', jquery: '../bower_components/jquery/jquery',
...@@ -6,8 +6,14 @@ require.config({ ...@@ -6,8 +6,14 @@ require.config({
} }
}); });
require(['can/util/library', 'can/route', 'app/todos', 'app/models/todo', 'can/view/ejs', 'can/view/mustache'], require([
function (can, route, Todos, Model) { 'can/util/library',
'can/route',
'controls/todos',
'models/todo',
'can/view/ejs',
'can/view/mustache'
], function (can, route, Todos, Model) {
'use strict'; 'use strict';
// Set up a route that maps to the `filter` attribute // Set up a route that maps to the `filter` attribute
...@@ -37,4 +43,4 @@ require(['can/util/library', 'can/route', 'app/todos', 'app/models/todo', 'can/v ...@@ -37,4 +43,4 @@ require(['can/util/library', 'can/route', 'app/todos', 'app/models/todo', 'can/v
// Now we can start routing // Now we can start routing
route.ready(true); route.ready(true);
}); });
/*global define*/ /*global define, window */
define(['can/util/library', 'can/control'], function (can, Control) { /*jshint newcap:false */
define([
'can/util/library',
'can/control'
], function (can, Control) {
'use strict'; 'use strict';
var ENTER_KEY = 13; var ENTER_KEY = 13;
......
/*global define*/ /*global define, window */
define(['can/util/library', 'can/model'], function (can, Model) { /*jshint newcap:false */
define([
'can/util/library',
'can/model'
], function (can, Model) {
'use strict'; 'use strict';
var LocalStorage = Model({ var LocalStorage = Model({
// Implement local storage handling // Implement local storage handling
localStore: function (cb) { localStore: function (cb) {
var name = this.name, var name = this.name;
data = JSON.parse(window.localStorage[name] || (window.localStorage[name] = '[]')), var data = JSON.parse(window.localStorage[name] || (window.localStorage[name] = '[]'));
res = cb.call(this, data); var res = cb.call(this, data);
if (res !== false) { if (res !== false) {
can.each(data, function (todo) { can.each(data, function (todo) {
delete todo.editing; delete todo.editing;
}); });
window.localStorage[name] = JSON.stringify(data); window.localStorage[name] = JSON.stringify(data);
} }
}, },
...@@ -19,8 +25,8 @@ define(['can/util/library', 'can/model'], function (can, Model) { ...@@ -19,8 +25,8 @@ define(['can/util/library', 'can/model'], function (can, Model) {
findAll: function () { findAll: function () {
var def = new can.Deferred(); var def = new can.Deferred();
this.localStore(function (todos) { this.localStore(function (todos) {
var instances = [], var instances = [];
self = this; var self = this;
can.each(todos, function (todo) { can.each(todos, function (todo) {
instances.push(new self(todo)); instances.push(new self(todo));
}); });
...@@ -54,7 +60,8 @@ define(['can/util/library', 'can/model'], function (can, Model) { ...@@ -54,7 +60,8 @@ define(['can/util/library', 'can/model'], function (can, Model) {
}, },
update: function (id, attrs) { update: function (id, attrs) {
var def = new can.Deferred(), todo; var def = new can.Deferred();
var todo;
this.localStore(function (todos) { this.localStore(function (todos) {
for (var i = 0; i < todos.length; i++) { for (var i = 0; i < todos.length; i++) {
if (todos[i].id === id) { if (todos[i].id === id) {
...@@ -70,5 +77,4 @@ define(['can/util/library', 'can/model'], function (can, Model) { ...@@ -70,5 +77,4 @@ define(['can/util/library', 'can/model'], function (can, Model) {
}, {}); }, {});
return LocalStorage; return LocalStorage;
}); });
/*global define*/ /*global define */
define(['can/util/library', 'can/observe', 'app/models/localstorage'], function (can, Observe, LocalStorage) { /*jshint newcap:false */
define([
'can/util/library',
'can/observe',
'models/localstorage'
], function (can, Observe, LocalStorage) {
'use strict'; 'use strict';
// Basic Todo entry model // Basic Todo entry model
...@@ -37,10 +42,10 @@ define(['can/util/library', 'can/observe', 'app/models/localstorage'], function ...@@ -37,10 +42,10 @@ define(['can/util/library', 'can/observe', 'app/models/localstorage'], function
// Returns a new can.Observe.List that contains only the Todos // Returns a new can.Observe.List that contains only the Todos
// matching the current filter // matching the current filter
byFilter: function(filter) { byFilter: function (filter) {
var filtered = new Observe.List(); var filtered = new Observe.List();
can.each(this, function(todo) { can.each(this, function (todo) {
if(todo.matches(filter)) { if (todo.matches(filter)) {
filtered.push(todo); filtered.push(todo);
} }
}); });
...@@ -48,7 +53,7 @@ define(['can/util/library', 'can/observe', 'app/models/localstorage'], function ...@@ -48,7 +53,7 @@ define(['can/util/library', 'can/observe', 'app/models/localstorage'], function
}, },
// Returns the list to display based on the currently set `filter` // Returns the list to display based on the currently set `filter`
displayList: function() { displayList: function () {
return this.byFilter(this.attr('filter')); return this.byFilter(this.attr('filter'));
} }
}); });
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment