spincycle
Version:
A reactive message router and object manager that lets clients subscribe to object property changes on the server
88 lines (71 loc) • 2.55 kB
JavaScript
// Generated by CoffeeScript 1.8.0
(function() {
var SampleGame, SamplePlayer, SuperModel, all, defer, uuid,
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
SuperModel = require('../lib/SuperModel');
defer = require('node-promise').defer;
all = require('node-promise').allOrNone;
uuid = require('node-uuid');
SamplePlayer = require('./SamplePlayer');
SampleGame = (function(_super) {
__extends(SampleGame, _super);
SampleGame.type = 'SampleGame';
SampleGame.model = [
{
name: 'players',
"public": true,
array: true,
type: 'SamplePlayer',
ids: 'players'
}, {
name: 'name',
"public": true,
value: 'name',
"default": 'game_' + uuid.v4()
}
];
function SampleGame(record) {
this.record = record;
this.createPlayers = __bind(this.createPlayers, this);
this.postCreate = __bind(this.postCreate, this);
return SampleGame.__super__.constructor.apply(this, arguments);
}
SampleGame.prototype.postCreate = function(q) {
if (this.players.length === 0) {
return this.createPlayers().then((function(_this) {
return function() {
console.log('SampleGame players created...');
console.dir(_this);
return q.resolve(_this);
};
})(this));
} else {
return q.resolve(this);
}
};
SampleGame.prototype.createPlayers = function() {
var q;
console.log('creating sample players');
q = defer();
this.players = [];
all([new SamplePlayer(), new SamplePlayer()]).then((function(_this) {
return function(results) {
console.log('sample players created');
results.forEach(function(player) {
_this.players.push(player);
player.serialize();
return console.log('serializing player ' + player.name);
});
_this.serialize();
return q.resolve();
};
})(this));
return q;
};
return SampleGame;
})(SuperModel);
module.exports = SampleGame;
}).call(this);
//# sourceMappingURL=SampleGame.js.map