requirejs([
'libs/jquery-1.9.1.min',
- 'runner',
+ 'fnpjs/runner',
'rng',
'./modules',
'libs/bootstrap/js/bootstrap.min'
--- /dev/null
+define(['libs/jquery-1.9.1.min', 'libs/underscore-min'], function($, _) {\r
+\r
+var Runner = function(app, modules) {\r
+\r
+ function getModuleInstance(moduleName) {\r
+ var module = moduleInstances[moduleName] = (moduleInstances[moduleName] || modules[moduleName](new Sandbox(moduleName)));\r
+ return module;\r
+ }\r
+\r
+ var bootstrappedData = {},\r
+ options = {},\r
+ moduleInstances = {},\r
+ eventListeners = [];\r
+ \r
+ _.each(_.keys(modules || {}), function(moduleName) {\r
+ if(_.contains(app.permissions[moduleName] || [], 'handleEvents')) {\r
+ eventListeners.push(moduleName)\r
+ }\r
+ });\r
+\r
+ \r
+ \r
+ var Sandbox = function(moduleName) {\r
+ this.$ = $;\r
+ this._ = _;\r
+ \r
+ this.getBootstrappedData = function() {\r
+ return bootstrappedData[moduleName];\r
+ }\r
+ \r
+ this.getTemplate = function(templateName) {\r
+ return _.template($('[data-template-name="' + moduleName + '.' + templateName + '"]').html().trim());\r
+ }\r
+ \r
+ this.publish = function(eventName) {\r
+ console.log(moduleName + ': ' + eventName);\r
+ var eventArgs = Array.prototype.slice.call(arguments, 1)\r
+ _.each(eventListeners, function(listenerModuleName) {\r
+ var listener = moduleInstances[listenerModuleName];\r
+ if(listener) {\r
+ listener.handleEvent(moduleName, eventName, eventArgs);\r
+ }\r
+ });\r
+ }\r
+ \r
+ var permissions = app.permissions[moduleName];\r
+ \r
+ this.getModule = _.contains(permissions, 'getModule') ? function(requestedModuleName) {\r
+ return getModuleInstance(requestedModuleName);\r
+ } : undefined;\r
+ \r
+ this.getDOM = _.contains(permissions, 'getDOM') ? function() {\r
+ return $(options.rootSelector);\r
+ } : undefined;\r
+ \r
+ };\r
+ \r
+ \r
+ this.setBootstrappedData = function(moduleName, data) {\r
+ bootstrappedData[moduleName] = data;\r
+ };\r
+ \r
+ this.start = function(_options) {\r
+ options = _.extend({\r
+ rootSelector: 'body'\r
+ }, _options);\r
+ app.initModules.forEach(function(moduleName) {\r
+ getModuleInstance(moduleName).start();\r
+ });\r
+ }\r
+}\r
+\r
+return {\r
+ Runner: Runner\r
+}\r
+\r
+});
\ No newline at end of file
+++ /dev/null
-define(['libs/jquery-1.9.1.min', 'libs/underscore-min'], function($, _) {\r
-\r
-var Runner = function(app, modules) {\r
-\r
- function getModuleInstance(moduleName) {\r
- var module = moduleInstances[moduleName] = (moduleInstances[moduleName] || modules[moduleName](new Sandbox(moduleName)));\r
- return module;\r
- }\r
-\r
- var bootstrappedData = {},\r
- options = {},\r
- moduleInstances = {},\r
- eventListeners = [];\r
- \r
- _.each(_.keys(modules || {}), function(moduleName) {\r
- if(_.contains(app.permissions[moduleName] || [], 'handleEvents')) {\r
- eventListeners.push(moduleName)\r
- }\r
- });\r
-\r
- \r
- \r
- var Sandbox = function(moduleName) {\r
- this.$ = $;\r
- this._ = _;\r
- \r
- this.getBootstrappedData = function() {\r
- return bootstrappedData[moduleName];\r
- }\r
- \r
- this.getTemplate = function(templateName) {\r
- return _.template($('[data-template-name="' + moduleName + '.' + templateName + '"]').html().trim());\r
- }\r
- \r
- this.publish = function(eventName) {\r
- console.log(moduleName + ': ' + eventName);\r
- var eventArgs = Array.prototype.slice.call(arguments, 1)\r
- _.each(eventListeners, function(listenerModuleName) {\r
- var listener = moduleInstances[listenerModuleName];\r
- if(listener) {\r
- listener.handleEvent(moduleName, eventName, eventArgs);\r
- }\r
- });\r
- }\r
- \r
- var permissions = app.permissions[moduleName];\r
- \r
- this.getModule = _.contains(permissions, 'getModule') ? function(requestedModuleName) {\r
- return getModuleInstance(requestedModuleName);\r
- } : undefined;\r
- \r
- this.getDOM = _.contains(permissions, 'getDOM') ? function() {\r
- return $(options.rootSelector);\r
- } : undefined;\r
- \r
- };\r
- \r
- \r
- this.setBootstrappedData = function(moduleName, data) {\r
- bootstrappedData[moduleName] = data;\r
- };\r
- \r
- this.start = function(_options) {\r
- options = _.extend({\r
- rootSelector: 'body'\r
- }, _options);\r
- app.initModules.forEach(function(moduleName) {\r
- getModuleInstance(moduleName).start();\r
- });\r
- }\r
-}\r
-\r
-return {\r
- Runner: Runner\r
-}\r
-\r
-});
\ No newline at end of file