mirror of
https://github.com/sstent/node.git
synced 2026-01-27 23:51:45 +00:00
updated app
This commit is contained in:
87
node_modules/derby-examples/sink/lib/app/leaderboard.js
generated
vendored
Normal file
87
node_modules/derby-examples/sink/lib/app/leaderboard.js
generated
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
// Generated by CoffeeScript 1.3.1
|
||||
var addPlayer, app, get, randomScore, ready, render, view, _ref;
|
||||
|
||||
_ref = app = require('./index'), get = _ref.get, ready = _ref.ready, view = _ref.view;
|
||||
|
||||
render = require('./shared').render;
|
||||
|
||||
randomScore = function() {
|
||||
return Math.floor(Math.random() * 20) * 5;
|
||||
};
|
||||
|
||||
addPlayer = function(players, name) {
|
||||
var id;
|
||||
id = players.id();
|
||||
return players.set(id, {
|
||||
id: id,
|
||||
name: name,
|
||||
score: randomScore()
|
||||
});
|
||||
};
|
||||
|
||||
get('/leaderboard', function(page, model) {
|
||||
return model.subscribe('leaderboard', function(err, leaderboard) {
|
||||
var name, players, _i, _len, _ref1;
|
||||
players = leaderboard.at('players');
|
||||
if (!players.get()) {
|
||||
_ref1 = ['Parker Blue', 'Kelly Green', 'Winston Fairbanks'];
|
||||
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
||||
name = _ref1[_i];
|
||||
addPlayer(players, name);
|
||||
}
|
||||
}
|
||||
leaderboard.fn('_list', players, function(items) {
|
||||
var id, item, out;
|
||||
out = [];
|
||||
for (id in items) {
|
||||
item = items[id];
|
||||
if (item != null ? item.id : void 0) {
|
||||
out.push(item);
|
||||
}
|
||||
}
|
||||
return out.sort(function(a, b) {
|
||||
return (b.score - a.score) || (b.id > a.id);
|
||||
});
|
||||
});
|
||||
model.ref(leaderboard.at('_selected'), players, leaderboard.at('_selectedId'));
|
||||
return render(page, 'leaderboard');
|
||||
});
|
||||
});
|
||||
|
||||
ready(function(model) {
|
||||
var leaderboard, newPlayer, players, selected, selectedId;
|
||||
leaderboard = model.at('leaderboard');
|
||||
players = leaderboard.at('players');
|
||||
newPlayer = leaderboard.at('_newPlayer');
|
||||
selectedId = leaderboard.at('_selectedId');
|
||||
selected = leaderboard.at('_selected');
|
||||
return app.leaderboard = {
|
||||
add: function() {
|
||||
var name;
|
||||
if (!(name = newPlayer.get())) {
|
||||
return;
|
||||
}
|
||||
addPlayer(players, name);
|
||||
return newPlayer.set('');
|
||||
},
|
||||
remove: function() {
|
||||
var id;
|
||||
id = selected.get('id');
|
||||
return players.del(id);
|
||||
},
|
||||
incr: function() {
|
||||
return selected.incr('score', 5);
|
||||
},
|
||||
decr: function() {
|
||||
return selected.incr('score', -5);
|
||||
},
|
||||
select: function(e, el) {
|
||||
var id;
|
||||
id = model.at(el).get('id');
|
||||
return selectedId.set(id);
|
||||
},
|
||||
deselect: function() {
|
||||
return selectedId.set(null);
|
||||
}
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user