Sha256: da5f138996b246040fc22410db48f9dcfd38b3964da7957505cf80ef23cff868
Contents?: true
Size: 1.25 KB
Versions: 51
Compression:
Stored size: 1.25 KB
Contents
pageflow.PageTypes = pageflow.Object.extend({ initialize: function() { this.clientSideConfigs = {}; }, register: function(name, config) { if (this._setup) { throw 'Page types already set up. Register page types before initializers run.'; } this.clientSideConfigs[name] = config; }, setup: function(serverSideConfigs) { var clientSideConfigs = this.clientSideConfigs; this._setup = true; this.pageTypes = _.map(serverSideConfigs, function(serverSideConfig) { var clientSideConfig = clientSideConfigs[serverSideConfig.name] || {}; return new pageflow.PageType(serverSideConfig.name, clientSideConfig, serverSideConfig); }); }, findByName: function(name) { var result = this.find(function(pageType) { return pageType.name === name; }); if (!result) { throw('Could not find page type with name "' + name +'"'); } return result; } }); _.each(['each', 'map', 'reduce', 'first', 'find', 'pluck'], function(method) { pageflow.PageTypes.prototype[method] = function() { if (!this._setup) { throw 'Page types are not yet set up.'; } var args = Array.prototype.slice.call(arguments); args.unshift(this.pageTypes); return _[method].apply(_, args); }; });
Version data entries
51 entries across 51 versions & 1 rubygems