dog-and-duck/docs/codox/dog-and-duck.quack.picky.objects.html

27 lines
14 KiB
HTML

<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>dog-and-duck.quack.picky.objects documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Dog-and-duck</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Desiderata.html"><div class="inner"><span>Desiderata</span></div></a></li><li class="depth-1 "><a href="Using_ActivityPub.html"><div class="inner"><span>Using ActivityPub</span></div></a></li><li class="depth-1 "><a href="Validation_Faults.html"><div class="inner"><span>Validation Faults in ActivityPub documents</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>The Old Dog and Duck</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>dog-and-duck</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>quack</span></div></div></li><li class="depth-3 branch"><a href="dog-and-duck.quack.cli.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>cli</span></div></a></li><li class="depth-3"><a href="dog-and-duck.quack.picky.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>picky</span></div></a></li><li class="depth-4 branch"><a href="dog-and-duck.quack.picky.collections.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>collections</span></div></a></li><li class="depth-4 branch"><a href="dog-and-duck.quack.picky.constants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>constants</span></div></a></li><li class="depth-4 branch"><a href="dog-and-duck.quack.picky.control-variables.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>control-variables</span></div></a></li><li class="depth-4 branch"><a href="dog-and-duck.quack.picky.distribution.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>distribution</span></div></a></li><li class="depth-4 branch current"><a href="dog-and-duck.quack.picky.objects.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>objects</span></div></a></li><li class="depth-4 branch"><a href="dog-and-duck.quack.picky.scratch.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>scratch</span></div></a></li><li class="depth-4 branch"><a href="dog-and-duck.quack.picky.time.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-4"><a href="dog-and-duck.quack.picky.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-3"><a href="dog-and-duck.quack.quack.html"><div class="inner"><span class="tree" style="top: -269px;"><span class="top" style="height: 278px;"></span><span class="bottom"></span></span><span>quack</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -362px;"><span class="top" style="height: 371px;"></span><span class="bottom"></span></span><span>scratch</span></div></div></li><li class="depth-3 branch"><a href="dog-and-duck.scratch.parser.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>parser</span></div></a></li><li class="depth-3"><a href="dog-and-duck.scratch.scratch.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>scratch</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>utils</span></div></div></li><li class="depth-3"><a href="dog-and-duck.utils.process.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>process</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="dog-and-duck.quack.picky.objects.html#var-check-property"><div class="inner"><span>check-property</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.objects.html#var-check-property-required"><div class="inner"><span>check-property-required</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.objects.html#var-check-property-valid"><div class="inner"><span>check-property-valid</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.objects.html#var-coll-object-reference-or-fault"><div class="inner"><span>coll-object-reference-or-fault</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.objects.html#var-maybe-reify"><div class="inner"><span>maybe-reify</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.objects.html#var-maybe-reify-or-faults"><div class="inner"><span>maybe-reify-or-faults</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.objects.html#var-object-expected-properties"><div class="inner"><span>object-expected-properties</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.objects.html#var-object-faults"><div class="inner"><span>object-faults</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.objects.html#var-object-reference-or-faults"><div class="inner"><span>object-reference-or-faults</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.objects.html#var-properties-faults"><div class="inner"><span>properties-faults</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">dog-and-duck.quack.picky.objects</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-check-property"><h3>check-property</h3><div class="usage"><code>(check-property obj prop)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/dog-and-duck/blob/master/src/dog_and_duck/quack/picky/objects.clj#L377">view source</a></div></div><div class="public anchor" id="var-check-property-required"><h3>check-property-required</h3><div class="usage"><code>(check-property-required obj prop clause)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/dog-and-duck/blob/master/src/dog_and_duck/quack/picky/objects.clj#L358">view source</a></div></div><div class="public anchor" id="var-check-property-valid"><h3>check-property-valid</h3><div class="usage"><code>(check-property-valid obj prop clause)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/dog-and-duck/blob/master/src/dog_and_duck/quack/picky/objects.clj#L366">view source</a></div></div><div class="public anchor" id="var-coll-object-reference-or-fault"><h3>coll-object-reference-or-fault</h3><div class="usage"><code>(coll-object-reference-or-fault value expected-type severity token)</code></div><div class="doc"><div class="markdown"><p>As object-reference-or-fault, except <code>value</code> argument may also be a list of objects and/or object references.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/dog-and-duck/blob/master/src/dog_and_duck/quack/picky/objects.clj#L505">view source</a></div></div><div class="public anchor" id="var-maybe-reify"><h3>maybe-reify</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>If <code>*reify-refs*</code> is <code>true</code>, return the object at this <code>target</code> URI. Returns <code>nil</code> if</p>
<ol>
<li><code>*reify-refs*</code> is false;</li>
<li>the object was not found;</li>
<li>access to the object was not permitted.</li>
</ol>
<p>Consequently, use with care.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/dog-and-duck/blob/master/src/dog_and_duck/quack/picky/objects.clj#L434">view source</a></div></div><div class="public anchor" id="var-maybe-reify-or-faults"><h3>maybe-reify-or-faults</h3><div class="usage"><code>(maybe-reify-or-faults value expected-type severity token)</code></div><div class="doc"><div class="markdown"><p>If <code>*reify-refs*</code> is <code>true</code>, runs basic checks on the object at this <code>target</code> URI, if it is found, or a list containing a fault object with this <code>severity</code> and <code>token</code> if it is not.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/dog-and-duck/blob/master/src/dog_and_duck/quack/picky/objects.clj#L455">view source</a></div></div><div class="public anchor" id="var-object-expected-properties"><h3>object-expected-properties</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Requirements of properties of object, cribbed from <a href="https://www.w3.org/TR/activitystreams-vocabulary/#properties">https://www.w3.org/TR/activitystreams-vocabulary/#properties</a></p>
<p>Note the following sub-key value types:</p>
<ul>
<li><code>:collection</code> opposite of <code>:functional</code>: if true, value should be a collection (in the Clojure sense), not a single object;</li>
<li><code>:functional</code> if true, value should be a single object; if false, may be a single object or a sequence of objects, but each must pass validation checks;</li>
<li><code>:if-invalid</code> a sequence of two keywords, first indicating severity, second being a message key;</li>
<li><code>:if-missing</code> a sequence of two keywords, first indicating severity, second being a message key;</li>
<li><code>:required</code> a boolean, or a function of one argument returning a boolean, in which case the function will be applied to the object having the property;</li>
<li><code>:validator</code> a function of one argument returning a boolean, which will be applied to the value or values of the identified property.</li>
</ul></div></div><div class="src-link"><a href="https://github.com/simon-brooke/dog-and-duck/blob/master/src/dog_and_duck/quack/picky/objects.clj#L46">view source</a></div></div><div class="public anchor" id="var-object-faults"><h3>object-faults</h3><div class="usage"><code>(object-faults x)</code><code>(object-faults x expected-type)</code></div><div class="doc"><div class="markdown"><p>Return a list of faults found in object <code>x</code>, or <code>nil</code> if none are.</p>
<p>If <code>expected-type</code> is also passed, verify that <code>x</code> has <code>expected-type</code>. <code>expected-type</code> may be passed as a string or as a set of strings. Detailed verification of the particular features of types is not done here.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/dog-and-duck/blob/master/src/dog_and_duck/quack/picky/objects.clj#L402">view source</a></div></div><div class="public anchor" id="var-object-reference-or-faults"><h3>object-reference-or-faults</h3><div class="usage"><code>(object-reference-or-faults value expected-type severity token)</code></div><div class="doc"><div class="markdown"><p>If this <code>value</code> is either </p>
<ol>
<li>an object of <code>expected-type</code>;</li>
<li>a URI referencing an object of <code>expected-type</code>; or</li>
<li>a link object referencing an object of <code>expected-type</code></li>
</ol>
<p>and no faults are returned from validating the linked object, then return <code>nil</code>; else return a sequence comprising a fault object with this <code>severity</code> and <code>token</code>, prepended to the faults returned.</p>
<p>As with <code>has-type-or-fault</code> (q.v.), <code>expected-type</code> may be passed as a string, as a set of strings, or <code>nil</code> (indicating the type of the referenced object should not be checked).</p>
<p><strong>NOTE THAT</strong> if <code>*reify-refs*</code> is <code>false</code>, referenced objects will not actually be checked.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/dog-and-duck/blob/master/src/dog_and_duck/quack/picky/objects.clj#L465">view source</a></div></div><div class="public anchor" id="var-properties-faults"><h3>properties-faults</h3><div class="usage"><code>(properties-faults x)</code></div><div class="doc"><div class="markdown"><p>Return a lost of faults found on properties of the object <code>x</code>, or <code>nil</code> if none are.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/dog-and-duck/blob/master/src/dog_and_duck/quack/picky/objects.clj#L387">view source</a></div></div></div></body></html>