1 /**
  2  * jsMvc bla bla bla
  3  * @example $i = new jsMvc(['UrlManager', 'Dispatcher']);
  4  * @constructor
  5  * @param {Array} [modules] An array of modules to load for the resulting Object
  6  */
  7 var jsMvc = function(modules) {
  8   if (typeof modules == "array") {
  9     for (module in modules) {
 10       if (jsMvc.Modules[module]) jsMvc.Modules[module]().init.call(this);
 11     }
 12   }
 13 };
 14 
 15 /**
 16  * A map of the available Modules to load for a jsMvc Object
 17  * @public
 18  * @property
 19  */
 20 jsMvc.Modules = {};
 21 
 22 jsMvc.prototype = {
 23   /** @property */
 24   m: {},
 25   /** @property */
 26   v: {},
 27   /** @property */
 28   c: {},
 29 
 30   /** @function */
 31   m: function(name, methods) {
 32     this.m[name] = new jsMvc.Model(methods);
 33   },
 34   /** @function */
 35   v: function(name, methods) {
 36     this.v[name] = new jsMvc.View(methods);
 37   },
 38   /** @function */
 39   c: function(name, methods) {
 40     this.c[name] = new jsMvc.Controller(name, methods);
 41   }
 42 };
 43