Shuo/lib/models/network.js

38 lines
718 B
JavaScript
Raw Normal View History

var _ = require("lodash");
var Chan = require("./chan");
module.exports = Network;
function Network(attr) {
_.merge(this, _.extend({
id: global.id = ++global.id || 1,
client: null,
2014-06-14 15:57:26 +00:00
connected: false,
host: "",
2014-06-21 20:37:21 +00:00
name: attr.host.split(".")[1].capitalize() || attr.host,
channels: [],
}, attr));
// Add lobby
this.channels.unshift(
2014-06-21 19:39:51 +00:00
new Chan({name: this.name, type: "lobby"})
);
};
2014-06-15 15:01:38 +00:00
Network.prototype.addChan = function(chan) {
2014-06-20 13:57:11 +00:00
chan.network = this;
2014-06-15 15:01:38 +00:00
this.channels.push(chan);
};
2014-04-30 15:14:22 +00:00
Network.prototype.toJSON = function() {
2014-06-14 15:57:26 +00:00
var clone = _.omit(this, [
"client",
"connected",
]);
2014-05-02 17:46:18 +00:00
return clone;
};
2014-06-21 20:37:21 +00:00
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}