| ; | |
| // delayed dependencies | |
| var Room, allSockets; | |
| /* | |
| * bind | |
| * | |
| * - self (object) : the sender | |
| * - obj (object) : what to add the methods to | |
| * - [name] (string) : optional name for methods | |
| */ | |
| var bind = function bind (self) { | |
| var obj = broadcast(self); | |
| obj.to = broadcastTo(self); | |
| return obj; | |
| }; | |
| var detach = function (self, obj, name) { | |
| }; | |
| /* | |
| * Broadcast | |
| * | |
| * - event (string) | |
| * - args... (mixed) | |
| */ | |
| var broadcast = function broadcast (self) { | |
| return function broadcastClosure (event, arg1, arg2, arg3) { | |
| allSockets.broadcast(self.id, event, arg1, arg2, arg3); | |
| }; | |
| }; | |
| /* | |
| * Broadcast.to | |
| * | |
| * - room (string) | |
| */ | |
| var broadcastTo = function broadcastTo (self) { | |
| return function broadcastToClosure (room) { | |
| room = Room.get(room); | |
| return { | |
| emit: function broadcastToEmit (event, arg1, arg2, arg3) { | |
| room.broadcast(self.id, event, arg1, arg2, arg3); | |
| } | |
| }; | |
| }; | |
| }; | |
| /* | |
| * (Private) Init | |
| * Loads the room dependency | |
| * Can only be run once. | |
| * | |
| * - room (Room) : room class | |
| */ | |
| var init = function init (_room) { | |
| Room = _room; | |
| allSockets = Room.get('all'); | |
| return module.exports; | |
| }; | |
| module.exports = { | |
| bind: bind, | |
| init: init | |
| }; | |