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

Version Path
paloma-4.2.1 vendor/assets/javascripts/paloma/controller_factory.js
paloma-4.2.0 vendor/assets/javascripts/paloma/controller_factory.js
paloma-4.1.2 vendor/assets/javascripts/paloma/controller_factory.js
paloma-4.1.1 vendor/assets/javascripts/paloma/controller_factory.js
paloma-4.1.0 vendor/assets/javascripts/paloma/controller_factory.js
paloma-4.0.0 vendor/assets/javascripts/paloma/controller_builder.js
paloma-3.0.2 vendor/assets/javascripts/paloma/controller_builder.js
paloma-3.0.1 vendor/assets/javascripts/paloma/controller_builder.js
paloma-3.0.0 vendor/assets/javascripts/paloma/controller_builder.js