Sha256: fb67fe761a7a8ff307cd3a7d6bd0ca7928094bf955e2e90cae2f005ed3c1519d

Contents?: true

Size: 805 Bytes

Versions: 5

Compression:

Stored size: 805 Bytes

Contents

Paloma.ControllerBuilder = function(classFactory){
  this.classFactory = classFactory;
  this.options = {};
};

Paloma.ControllerBuilder.prototype = {

  build: function(options){
    this.options = options;

    var ControllerClass = this._controllerClass();
    if ( !ControllerClass ) return null;

    var controller = new ControllerClass( this._buildParams() );

    controller.controller = this.options.controller;
    controller.action = this.options.action;

    return controller;
  },

  _controllerClass: function(){
    return this.classFactory.get( this.options.controller );
  },

  _buildParams: function(){
    var params = {};

    for (var k in this.options.params)
      if (this.options.params.hasOwnProperty(k))
        params[k] = this.options.params[k];

    return params;
  }

};

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
paloma-6.1.0 vendor/assets/javascripts/paloma/controller_builder.js
paloma-6.0.0 vendor/assets/javascripts/paloma/controller_builder.js
paloma-5.1.0 vendor/assets/javascripts/paloma/controller_builder.js
paloma-5.0.1 vendor/assets/javascripts/paloma/controller_builder.js
paloma-5.0.0 vendor/assets/javascripts/paloma/controller_builder.js