Sha256: d9a182609f1b502b812dc31efa2d7bbe35b15892c7bfd099b9d2d10b0c56375d
Contents?: true
Size: 1.19 KB
Versions: 9
Compression:
Stored size: 1.19 KB
Contents
(function(Paloma){ var ControllerFactory = function(router){ this.instances = {}; this.router = router; }; ControllerFactory.prototype.make = function(name){ var config = this.router.parse(name), scope = this.instances; // Create namespaces. for (var i = 0, n = config['namespaces'].length; i < n; i++){ var namespace = config['namespaces'][i]; scope[namespace] = scope[namespace] || {}; scope = scope[namespace]; } return scope[config['controller']] = createConstructor(); }; ControllerFactory.prototype.get = function(name){ var config = this.router.parse(name), scope = this.instances; for (var i = 0, n = config['controllerPath'].length; i < n; i++){ var path = config['controllerPath'][i]; if (scope[path] != null){ scope = scope[path]; } else { return null; } } return scope; }; var createConstructor = function(){ var constructor = function(params){ this.params = params; } $.extend(constructor, Paloma.Controller); $.extend(constructor.prototype, Paloma.Controller.prototype); return constructor; }; Paloma.ControllerFactory = ControllerFactory; })(window.Paloma);
Version data entries
9 entries across 9 versions & 1 rubygems