Source: index.js

/*! index.js */

/**
 * This class provides a set of methods
 * [where()]{@linkcode obop#where}
 * /
 * [order()]{@linkcode obop#order}
 * /
 * [update()]{@linkcode obop#update}
 * /
 * [view()]{@linkcode obop#view}
 * which manipulate array such like MongoDB-style object operators do.
 *
 * @class obop
 * @property {String} system.name - Read only. System name: "obop"
 * @property {String} system.version - Read only. System version: e.g. "0.0.1"
 * @see https://github.com/kawanet/obop
 * @see http://kawanet.github.io/obop/docs/obop.html
 * @see https://raw.github.com/kawanet/obop/master/build/obop.min.js
 *
 * @example
 * // node.js
 * var obop = require('obop')();
 * var src = [ { a: 1 }, { a: 2 }, { a: 3 } ];
 * var out = obop.where( src, { a: 2 } ); // => [ { a: 2 } ]
 *
 * @example
 * <script src="obop.min.js"></script>
 * <script>
 *   var src = [ { a: 1 }, { a: 2 }, { a: 3 } ];
 *   var out = obop.where( src, { a: 2 } ); // => [ { a: 2 } ]
 * </script>
 */

var $where = require('./lib/dollar_where');
var $update = require('./lib/dollar_update');

function obop() {
  if (!(this instanceof obop)) return new obop();
}

obop.where = obop.prototype.where = require('./lib/where.js').where;
obop.view = obop.prototype.view = require('./lib/view.js').view;
obop.order = obop.prototype.order = require('./lib/order.js').order;
obop.update = obop.prototype.update = require('./lib/update.js').update;
obop.system = obop.prototype.system = require('./lib/system.json');
obop.$where = obop.prototype.$where = new $where();
obop.$update = obop.prototype.$update = new $update();

module.exports = obop;