]> git.example.dev Git - binbsis50.git/commitdiff
small refactoring and cleanup
authorLuigi Pinca <luigipinca@gmail.com>
Sat, 30 Nov 2013 09:32:13 +0000 (10:32 +0100)
committerLuigi Pinca <luigipinca@gmail.com>
Sat, 30 Nov 2013 09:32:13 +0000 (10:32 +0100)
lib/rooms.js
lib/sparks.js
lib/utils.js
package.json
views/user.jade

index 9a5cb2c1282e82acf0dbb0499d776e2562648069..e0c105e6bae0bc24dab036dd58cb03f80b89f8d2 100644 (file)
@@ -7,13 +7,15 @@ var amatch = require('./match')
   , collectStats = require('./stats')
   , config = require('../config')
   , fifolength = config.songsinarun * config.gameswithnorepeats
-  , isUsername = require('./utils').isUsername
   , primus
   , randInt = require('./prng').randInt
   , rooms = {} // The Object that contains all the room instances
   , songsdb = clients.songs
   , sparks
-  , usersdb = clients.users;
+  , usersdb = clients.users
+  , utils = require('./utils')
+  , isString = utils.isString
+  , isUsername = utils.isUsername;
 
 /**
  * Expose a function to set up the rooms.
@@ -312,7 +314,7 @@ function Room(roomname) {
 
   // A user is sending a chat message
   this.sendChatMessage = function(msg, spark, to) {
-    if (typeof to === 'string') {
+    if (isString(to)) {
       // Check if the recipient is in the room
       if (usersData[to]) {
         spark.send('chatmsg', msg, spark.nickname, to);
index dcffb3b519b3159a953219dc74984a204fc7c83e..52708f260b6a096e0cb73d4c38f4eb913ff1ed70 100644 (file)
@@ -14,7 +14,10 @@ var config = require('../config')
   , rooms = require('./rooms').rooms
   , secret
   , sessionstore
-  , sparks = Object.create(null); // Sparks of all rooms
+  , sparks = Object.create(null) // Sparks of all rooms
+  , utils = require('./utils')
+  , isFunction = utils.isFunction
+  , isString = utils.isString;
 
 /**
  * Expose a function to set up Primus.
@@ -39,6 +42,7 @@ module.exports = function(options) {
   fs.writeFileSync(__dirname + '/../public/js/primus.min.js', library.code);
 
   primus.on('connection', connection);
+  primus.on('joinroom', joinRoom);
   primus.on('log', function(type, message, context) {
     if (type === 'error') {
       console.error(context.stack);
@@ -76,16 +80,10 @@ var authorize = function(req, authorized) {
  */
 
 var connection = function(spark) {
-  var room
-    , user = spark.headers.session.user;
+  var user = spark.headers.session.user;
   delete spark.headers.session;
-  spark.on('end', function() {
-    if (room) {
-      rooms[room].removeUser(spark.nickname);
-    }
-  });
   spark.on('getoverview', function(callback) {
-    if (typeof callback !== 'function') {
+    if (!isFunction(callback)) {
       return;
     }
     var data = Object.create(null);
@@ -94,23 +92,8 @@ var connection = function(spark) {
     }
     callback(data);
   });
-  spark.on('getstatus', function(callback) {
-    if (room && typeof callback === 'function') {
-      rooms[room].sendStatus(callback);
-    }
-  });
-  spark.on('guess', function(guess) {
-    if (room && typeof guess === 'string') {
-      rooms[room].guess(spark, guess);
-    }
-  });
-  spark.on('ignore', function(who, callback) {
-    if (room && typeof who === 'string' && typeof callback === 'function') {
-      rooms[room].ignore(who, spark.nickname, callback);
-    }
-  });
   spark.on('joinanonymous', function(nickname, room) {
-    if (!spark.nickname && typeof nickname === 'string' && ~config.rooms.indexOf(room)) {
+    if (!spark.nickname && isString(nickname) && ~config.rooms.indexOf(room)) {
       rooms[room].setNickName(spark, nickname);
     }
   });
@@ -123,28 +106,49 @@ var connection = function(spark) {
       rooms[room].joinRoom(spark);
     }
   });
-  spark.on('joinroom', function(roomname) {
-    room = roomname;
+  spark.on('loggedin', function(callback) {
+    if (!isFunction(callback)) {
+      return;
+    }
+    return user ? callback(true, user) : callback(false);
+  });
+};
+
+/**
+ * Handle `joinroom` event.
+ */
+
+var joinRoom = function(room, spark) {
+  spark.on('getstatus', function(callback) {
+    if (isFunction(callback)) {
+      rooms[room].sendStatus(callback);
+    }
+  });
+  spark.on('guess', function(guess) {
+    if (isString(guess)) {
+      rooms[room].guess(spark, guess);
+    }
+  });
+  spark.on('ignore', function(who, callback) {
+    if (isString(who) && isFunction(callback)) {
+      rooms[room].ignore(who, spark.nickname, callback);
+    }
   });
   spark.on('kick', function(who, why, callback) {
-    if (room && typeof who === 'string' && typeof why === 'string' &&
-      typeof callback === 'function') {
+    if (isString(who) && isString(why) && isFunction(callback)) {
       rooms[room].kick(who, why, spark.nickname, callback);
     }
   });
-  spark.on('loggedin', function(callback) {
-    if (typeof callback !== 'function') {
-      return;
-    }
-    return user ? callback(true, user) : callback(false);
+  spark.on('leaveallrooms', function() {
+    rooms[room].removeUser(spark.nickname);
   });
   spark.on('sendchatmsg', function(msg, to) {
-    if (room && typeof msg === 'string') {
+    if (isString(msg)) {
       rooms[room].sendChatMessage(msg, spark, to);
     }
   });
   spark.on('unignore', function(who) {
-    if (room && typeof who === 'string') {
+    if (isString(who)) {
       rooms[room].unignore(who, spark.nickname);
     }
   });
index 367e60115b993233c387010dc56e7ca5a8c2d314..a180ca168878910424d6a348dc4cbd3cfbeb7039 100644 (file)
@@ -49,6 +49,22 @@ exports.isEmail = function(str) {
   return filter.test(str);
 };
 
+/**
+ * Check whether the given argument is a function.
+ */
+
+exports.isFunction = function(arg) {
+  return typeof arg === 'function';
+};
+
+/**
+ * Check whether the given argument is a string.
+ */
+
+exports.isString = function(arg) {
+  return typeof arg === 'string';
+};
+
 /**
  * Check whether a given string is a well formed username.
  */
index fec757775c420e732434252bfb0a9862f037bde7..42f3d610a3d429ffd5c64fd04f309b4995e64df2 100644 (file)
@@ -30,5 +30,5 @@
     "start": "node app.js"
   },
   "subdomain": "binb",
-  "version": "0.3.6-14"
+  "version": "0.3.6-15"
 }
index e5a3f963401aa0002f59b28e8940c9efa4331638..2fabd83b9b4e6c1057b5825a2886f6fc3237686b 100644 (file)
@@ -34,19 +34,19 @@ block sections
           tbody
             tr
               td Best guess time
-              - if (bestguesstime !== "30.0")
+              - if (bestguesstime !== '30.0')
                 td #{bestguesstime} sec
               - else
                 td N/A
             tr
               td Worst guess time
-              - if (worstguesstime !== "0.0")
+              - if (worstguesstime !== '0.0')
                 td #{worstguesstime} sec
               - else
                 td N/A
             tr
               td Mean guess time
-              - if (typeof meanguesstime !== 'undefined')
+              - if (meanguesstime)
                 td #{meanguesstime} sec
               - else
                 td N/A