Skip to content

Instantly share code, notes, and snippets.

@benlower
Created September 14, 2012 23:42
Show Gist options
  • Save benlower/3725624 to your computer and use it in GitHub Desktop.
Save benlower/3725624 to your computer and use it in GitHub Desktop.
// Set up a collection to contain player information. On the server,
// it is backed by a MongoDB collection named "players."
Players = new Meteor.Collection("players");
if (Meteor.is_client) {
Template.leaderboard.players = function () {
return Players.find({}, {sort: {score: -1, name: 1}});
};
Template.leaderboard.selected_name = function () {
var player = Players.findOne(Session.get("selected_player"));
return player && player.name;
};
Template.player.selected = function () {
return Session.equals("selected_player", this._id) ? "selected" : '';
};
Template.leaderboard.events({
'click input.inc': function () {
Players.update(Session.get("selected_player"), {$inc: {score: 5}});
}
});
Template.player.events({
'click': function () {
Session.set("selected_player", this._id);
}
});
}
// On server startup, create some players if the database is empty.
if (Meteor.is_server) {
var connect = __meteor_bootstrap__.require("connect");
var util = __meteor_bootstrap__.require("util");
__meteor_bootstrap__.app
.use(connect.query())
.use(function(req, res, next) {
switch(req.url) {
case '/twilio':
console.log('URL: ' + req.url + ' Method: ' + req.method + ' Headers: ' + req.headers);
console.log(util.inspect(req));
res.writeHead(200, {'Content-Type': 'text/xml'});
var content = '<Response><Sms>this is your reply</Sms></Response>';
res.write(content);
break;
case '/':
default:
}
});
Meteor.startup(function () {
if (Players.find().count() === 0) {
var names = [
"Ben Lower",
"Gilbert Herschiebberrggerr",
"Sarah Matthews",
"Person LastName",
"Quicky McQuiverpants",
"Random LastName",
"Random2 LastName",
"Random3 LastName",
"Random4 LastName",
"Random5 LastName",
"Random6 LastName",
];
for (var i = 0; i < names.length; i++)
Players.insert({name: names[i], code: "ASDF", score: Math.floor(Math.random()*10)*5});
}
});
}
@benlower
Copy link
Author

this throws error:

TypeError: Object # has no method 'render'
at Object.handle (app/gngleaderboard.js:39:25)
at next (/usr/local/meteor/lib/node_modules/connect/lib/http.js:204:15)
at Object.query as handle
at next (/usr/local/meteor/lib/node_modules/connect/lib/http.js:204:15)
at Object.oncomplete (/usr/local/meteor/lib/node_modules/connect/lib/middleware/static.js:150:11)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment