UNPKG

jsdoc-oblivion

Version:
2,474 lines (849 loc) 34.1 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=yes, width=device-width"> <title>Oblivion — Class: documents/model</title> <link rel="shortcut icon" href="/favicon.ico"> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/sunlight.dark.css"> <link type="text/css" rel="stylesheet" href="styles/site.oblivion.css"> </head> <body> <div class="container-fluid"> <div class="navbar navbar-fixed-top navbar-inverse"> <div class="navbar-inner"> <a class="brand" href="index.html">Oblivion</a> <ul class="nav"> <li class="dropdown"> <a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b class="caret"></b></a> <ul class="dropdown-menu "> <li> <a href="module-base.html">base</a> </li> <li> <a href="module-base_chains.html">base/chains</a> </li> <li> <a href="module-documents_binder.html">documents/binder</a> </li> <li> <a href="module-documents_model.html">documents/model</a> </li> <li> <a href="module-documents_probe.html">documents/probe</a> </li> <li> <a href="module-documents_schema.html">documents/schema</a> </li> <li> <a href="module-ink_collector.html">ink/collector</a> </li> <li> <a href="module-mixins_bussable.html">mixins/bussable</a> </li> <li> <a href="module-mixins_signalable.html">mixins/signalable</a> </li> <li> <a href="module-strings_format.html">strings/format</a> </li> <li> <a href="module-utils_logger.html">utils/logger</a> </li> </ul> </li> <li class="dropdown"> <a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b class="caret"></b></a> <ul class="dropdown-menu "> <li> <a href="base.html">base</a> </li> <li> <a href="base_chains.html">base/chains</a> </li> <li> <a href="documents_model.html">documents/model</a> </li> <li> <a href="module-documents_probe.queryOperators.html">documents/probe.queryOperators</a> </li> <li> <a href="module-documents_probe.updateOperators.html">documents/probe.updateOperators</a> </li> <li> <a href="module-ink_collector-ACollector.html">ink/collector~ACollector</a> </li> <li> <a href="module-ink_collector-CollectorBase.html">ink/collector~CollectorBase</a> </li> <li> <a href="module-ink_collector-OCollector.html">ink/collector~OCollector</a> </li> <li> <a href="module-mixins_signalable-Signal.html">mixins/signalable~Signal</a> </li> <li> <a href="utils_logger.Logger.html">utils/logger.Logger</a> </li> </ul> </li> <li class="dropdown"> <a href="mixins.list.html" class="dropdown-toggle" data-toggle="dropdown">Mixins<b class="caret"></b></a> <ul class="dropdown-menu "> <li> <a href="documents_schema.html">documents/schema</a> </li> <li> <a href="mixins_bussable.html">mixins/bussable</a> </li> <li> <a href="mixins_signalable.html">mixins/signalable</a> </li> </ul> </li> </ul> </div> </div> <div class="row-fluid"> <div class="span3"> <div id="toc"></div> </div> <div class="span9"> <div id="main"> <h1 class="page-title">Class: documents/model</h1> <section> <header> <h2> documents/model </h2> </header> <article> <div class="container-overview"> <dt> <h4 class="name" id="documents/model"><span class="type-signature"></span>new documents/model<span class="signature">()</span><span class="type-signature"></span></h4> </dt> <dd> <div class="description"> A model is the first level if usable data-bearing entity in the system. It does NOT include any verbs for saving or anything like that, it is a pure, in memory data container </div> <dl class="details"> </dl> </dd> </div> <h3 class="subsection-title">Members</h3> <dl> <dt class="name" id="isEmpty"> <h4><span class="type-signature"></span>isEmpty<span class="type-signature"> :boolean</span></h4> </dt> <dd> <div class="description"> Returns true if this instance is empty </div> <h5>Type:</h5> <ul> <li> <span class="param-type">boolean</span> </li> </ul> <dl class="details"> </dl> </dd> <dt class="name" id="isNew"> <h4><span class="type-signature"></span>isNew<span class="type-signature"> :boolean</span></h4> </dt> <dd> <div class="description"> If documents/model#_idField is filled in and it's value is empty this will be true. </div> <h5>Type:</h5> <ul> <li> <span class="param-type">boolean</span> </li> </ul> <dl class="details"> </dl> </dd> </dl> <h3 class="subsection-title">Methods</h3> <dl> <dt> <h4 class="name" id=".all"><span class="type-signature">&lt;static> </span>all<span class="signature">(obj, qu)</span><span class="type-signature"> &rarr; {boolean}</span></h4> </dt> <dd> <div class="description"> Returns true if all items match the query </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>obj</code></td> <td class="type"> <span class="param-type">array</span> | <span class="param-type">object</span> </td> <td class="description last">The object to query</td> </tr> <tr> <td class="name"><code>qu</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The query to execute. See <a href="module-documents_probe.queryOperators.html">module:documents/probe.queryOperators</a> for the operators you can use.</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> <h5>Returns:</h5> <dl> <dt> Type </dt> <dd> <span class="param-type">boolean</span> </dd> </dl> </dd> <dt> <h4 class="name" id=".any"><span class="type-signature">&lt;static> </span>any<span class="signature">(obj, qu)</span><span class="type-signature"> &rarr; {boolean}</span></h4> </dt> <dd> <div class="description"> Returns true if any of the items match the query </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>obj</code></td> <td class="type"> <span class="param-type">array</span> | <span class="param-type">object</span> </td> <td class="description last">The object to query</td> </tr> <tr> <td class="name"><code>qu</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The query to execute. See <a href="module-documents_probe.queryOperators.html">module:documents/probe.queryOperators</a> for the operators you can use.</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> <h5>Returns:</h5> <dl> <dt> Type </dt> <dd> <span class="param-type">boolean</span> </dd> </dl> </dd> <dt> <h4 class="name" id=".every"><span class="type-signature">&lt;static> </span>every<span class="signature">(obj, qu)</span><span class="type-signature"> &rarr; {boolean}</span></h4> </dt> <dd> <div class="description"> Returns true if all items match the query. Aliases as `all` </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>obj</code></td> <td class="type"> <span class="param-type">array</span> | <span class="param-type">object</span> </td> <td class="description last">The object to query</td> </tr> <tr> <td class="name"><code>qu</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The query to execute</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> <h5>Returns:</h5> <dl> <dt> Type </dt> <dd> <span class="param-type">boolean</span> </dd> </dl> </dd> <dt> <h4 class="name" id=".find"><span class="type-signature">&lt;static> </span>find<span class="signature">(obj, qu)</span><span class="type-signature"> &rarr; {array}</span></h4> </dt> <dd> <div class="description"> Find all records that match a query </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>obj</code></td> <td class="type"> <span class="param-type">array</span> | <span class="param-type">object</span> </td> <td class="description last">The object to query</td> </tr> <tr> <td class="name"><code>qu</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The query to execute. See <a href="module-documents_probe.queryOperators.html">module:documents/probe.queryOperators</a> for the operators you can use.</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> <h5>Returns:</h5> <div class="param-desc"> The results </div> <dl> <dt> Type </dt> <dd> <span class="param-type">array</span> </dd> </dl> </dd> <dt> <h4 class="name" id=".findKeys"><span class="type-signature">&lt;static> </span>findKeys<span class="signature">(obj, qu)</span><span class="type-signature"> &rarr; {array}</span></h4> </dt> <dd> <div class="description"> Find all records that match a query and returns the keys for those items. This is similar to <a href="module-documents_probe.html#.find">module:documents/probe.find</a> but instead of returning records, returns the keys. If `obj` is an object it will return the hash key. If 'obj' is an array, it will return the index </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>obj</code></td> <td class="type"> <span class="param-type">array</span> | <span class="param-type">object</span> </td> <td class="description last">The object to query</td> </tr> <tr> <td class="name"><code>qu</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The query to execute. See <a href="module-documents_probe.queryOperators.html">module:documents/probe.queryOperators</a> for the operators you can use.</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> <h5>Returns:</h5> <dl> <dt> Type </dt> <dd> <span class="param-type">array</span> </dd> </dl> </dd> <dt> <h4 class="name" id=".findOne"><span class="type-signature">&lt;static> </span>findOne<span class="signature">(obj, qu)</span><span class="type-signature"> &rarr; {object}</span></h4> </dt> <dd> <div class="description"> Returns the first record that matches the query. Aliased as `seek`. </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>obj</code></td> <td class="type"> <span class="param-type">array</span> | <span class="param-type">object</span> </td> <td class="description last">The object to query</td> </tr> <tr> <td class="name"><code>qu</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The query to execute. See <a href="module-documents_probe.queryOperators.html">module:documents/probe.queryOperators</a> for the operators you can use.</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> <h5>Returns:</h5> <dl> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> </dd> <dt> <h4 class="name" id=".findOneKey"><span class="type-signature">&lt;static> </span>findOneKey<span class="signature">(obj, qu)</span><span class="type-signature"> &rarr; {object}</span></h4> </dt> <dd> <div class="description"> Returns the first record that matches the query and returns its key or index depending on whether `obj` is an object or array respectively. Aliased as `seekKey`. </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>obj</code></td> <td class="type"> <span class="param-type">array</span> | <span class="param-type">object</span> </td> <td class="description last">The object to query</td> </tr> <tr> <td class="name"><code>qu</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The query to execute. See <a href="module-documents_probe.queryOperators.html">module:documents/probe.queryOperators</a> for the operators you can use.</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> <h5>Returns:</h5> <dl> <dt> Type </dt> <dd> <span class="param-type">object</span> </dd> </dl> </dd> <dt> <h4 class="name" id=".get"><span class="type-signature">&lt;static> </span>get<span class="signature">(path, record)</span><span class="type-signature"> &rarr; {*}</span></h4> </dt> <dd> <div class="description"> Reaches into an object and allows you to get at a value deeply nested in an object. This is not a query, but a straight reach in, useful for event bindings </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>path</code></td> <td class="type"> <span class="param-type">array</span> </td> <td class="description last">The split path of the element to work with</td> </tr> <tr> <td class="name"><code>record</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The record to reach into</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> <h5>Returns:</h5> <div class="param-desc"> Whatever was found in the record </div> <dl> <dt> Type </dt> <dd> <span class="param-type">*</span> </dd> </dl> </dd> <dt> <h4 class="name" id=".remove"><span class="type-signature">&lt;static> </span>remove<span class="signature">(obj, qu)</span><span class="type-signature"> &rarr; {object|array}</span></h4> </dt> <dd> <div class="description"> Remove all items in the object/array that match the query </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>obj</code></td> <td class="type"> <span class="param-type">array</span> | <span class="param-type">object</span> </td> <td class="description last">The object to query</td> </tr> <tr> <td class="name"><code>qu</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The query to execute. See <a href="module-documents_probe.queryOperators.html">module:documents/probe.queryOperators</a> for the operators you can use.</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> <h5>Returns:</h5> <div class="param-desc"> The array or object as appropriate without the records. </div> <dl> <dt> Type </dt> <dd> <span class="param-type">object</span> | <span class="param-type">array</span> </dd> </dl> </dd> <dt> <h4 class="name" id=".set"><span class="type-signature">&lt;static> </span>set<span class="signature">(path, record, setter, newValue)</span><span class="type-signature"></span></h4> </dt> <dd> <div class="description"> This will write the value into a record at the path, creating intervening objects if they don't exist. This does not work as filtered update and is meant to be used on a single record. It is a nice way of setting a property at an arbitrary depth at will. </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>path</code></td> <td class="type"> <span class="param-type">array</span> </td> <td class="description last">The split path of the element to work with</td> </tr> <tr> <td class="name"><code>record</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The record to reach into</td> </tr> <tr> <td class="name"><code>setter</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last">The set operation. See <a href="module-documents_probe.updateOperators.html">module:documents/probe.updateOperators</a> for the operators you can use.</td> </tr> <tr> <td class="name"><code>newValue</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The value to write to the, or if the operator is $pull, the query of items to look for</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> </dd> <dt> <h4 class="name" id=".some"><span class="type-signature">&lt;static> </span>some<span class="signature">(obj, qu)</span><span class="type-signature"> &rarr; {boolean}</span></h4> </dt> <dd> <div class="description"> Returns true if any of the items match the query. Aliases as `any` </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>obj</code></td> <td class="type"> <span class="param-type">array</span> | <span class="param-type">object</span> </td> <td class="description last">The object to query</td> </tr> <tr> <td class="name"><code>qu</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The query to execute</td> </tr> </tbody> </table> </div> <dl class="details"> </dl> <h5>Returns:</h5> <dl> <dt> Type </dt> <dd> <span class="param-type">boolean</span> </dd> </dl> </dd> <dt> <h4 class="name" id=".update"><span class="type-signature">&lt;static> </span>update<span class="signature">(obj, qu, setDocument)</span><span class="type-signature"></span></h4> </dt> <dd> <div class="description"> Updates all records in obj that match the query. See <a href="module-documents_probe.updateOperators.html">module:documents/probe.updateOperators</a> for the operators that are supported. </div> <h5>Parameters:</h5> <div class="params-table-container"> <table class="params table table-striped"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>obj</code></td> <td class="type"> <span class="param-type">object</span> | <span class="param-type">array</span> </td> <td class="description last">The object to update</td> </tr> <tr> <td class="name"><code>qu</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The query which will be used to identify the records to updated</td> </tr> <tr> <td class="name"><code>setDocument</code></td> <td class="type"> <span class="param-type">object</span> </td> <td class="description last">The update operator. See <a href="module-documents_probe.updateOperators.html">module:documents/probe.updateOperators</a></td> </tr> </tbody> </table> </div> <dl class="details"> </dl> </dd> </dl> </article> </section> </div> <div class="clearfix"></div> <footer> <span class="copyright"> Copyright © 2014 <a href='http://moogs.io' target='_blank'>Moogs, LLC.</a> </span> <br /> <span class="jsdoc-message"> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc" target="_blank">JSDoc 3.4.3</a> on 2017-07-16T00:18:22-07:00 </span> </footer> </div> <br clear="both"> </div> </div> <!--<script src="scripts/sunlight.js"></script>--> <script src="scripts/docstrap.lib.js"></script> <script src="scripts/bootstrap-dropdown.js"></script> <script src="scripts/toc.js"></script> <script> $( function () { $( "[id*='$']" ).each( function () { var $this = $( this ); $this.attr( "id", $this.attr( "id" ).replace( "$", "__" ) ); } ); $( "#toc" ).toc( { anchorName : function ( i, heading, prefix ) { return $( heading ).attr( "id" ) || ( prefix + i ); }, selectors : "h1,h2,h3,h4", showAndHide : false, scrollTo : "100px" } ); $( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" ); $( "#main span[id^='toc']" ).addClass( "toc-shim" ); $( '.dropdown-toggle' ).dropdown(); // $( ".tutorial-section pre, .readme-section pre" ).addClass( "sunlight-highlight-javascript" ).addClass( "linenums" ); $( ".tutorial-section pre, .readme-section pre" ).each( function () { var $this = $( this ); var example = $this.find( "code" ); exampleText = example.html(); var lang = /{@lang (.*?)}/.exec( exampleText ); if ( lang && lang[1] ) { exampleText = exampleText.replace( lang[0], "" ); example.html( exampleText ); lang = lang[1]; } else { lang = "javascript"; } if ( lang ) { $this .addClass( "sunlight-highlight-" + lang ) .addClass( "linenums" ) .html( example.html() ); } } ); Sunlight.highlightAll( { lineNumbers : true, showMenu : true, enableDoclinks : true } ); } ); </script> <!--Navigation and Symbol Display--> <!--Google Analytics--> </body> </html>