ethstats-server/models/collection.js

53 lines
920 B
JavaScript

var _ = require('lodash');
var Node = require('./node');
var Collection = function Collection()
{
this._list = [];
return this;
}
Collection.prototype.add = function(data)
{
if(typeof data.id == 'undefined')
return false;
var node = this.getNodeOrNew({ id : data.id });
node.info = data.info;
}
Collection.prototype.get = function(id)
{
return this.getNode(id);
}
Collection.prototype.getIndex = function(search)
{
return _.findIndex(this._list, search);
return (index >= 0 ? index : false);
}
Collection.prototype.getNode = function(search)
{
var index = this.getIndex(search);
if(index)
return this._list[index];
return false;
}
Collection.prototype.getIndexOrNew = function(search)
{
var index = this.getIndex(search) || this._list.push(new Node());
}
Collection.prototype.getNodeOrNew = function(search)
{
return this.getNode(this.getIndexOrNew(search));
}
module.exports = Collection;