9 lines
19 KiB
HTML
9 lines
19 KiB
HTML
<!DOCTYPE html PUBLIC ""
|
||
"">
|
||
<html><head><meta charset="UTF-8" /><title>dog-and-duck.quack.picky.utils 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"><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 current"><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.utils.html#var-activity-type.3F"><div class="inner"><span>activity-type?</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-actor-type.3F"><div class="inner"><span>actor-type?</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-any-or-faults"><div class="inner"><span>any-or-faults</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-concat-non-empty"><div class="inner"><span>concat-non-empty</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-cond-make-fault-object"><div class="inner"><span>cond-make-fault-object</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-context.3F"><div class="inner"><span>context?</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-filter-severity"><div class="inner"><span>filter-severity</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-has-activity-type.3F"><div class="inner"><span>has-activity-type?</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-has-actor-type.3F"><div class="inner"><span>has-actor-type?</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-has-context.3F"><div class="inner"><span>has-context?</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-has-type-or-fault"><div class="inner"><span>has-type-or-fault</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-has-type.3F"><div class="inner"><span>has-type?</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-link-or-uri.3F"><div class="inner"><span>link-or-uri?</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-make-fault-object"><div class="inner"><span>make-fault-object</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-nil-if-empty"><div class="inner"><span>nil-if-empty</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-object-or-uri.3F"><div class="inner"><span>object-or-uri?</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-string-or-fault"><div class="inner"><span>string-or-fault</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-truthy.3F"><div class="inner"><span>truthy?</span></div></a></li><li class="depth-1"><a href="dog-and-duck.quack.picky.utils.html#var-xsd-non-negative-integer.3F"><div class="inner"><span>xsd-non-negative-integer?</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">dog-and-duck.quack.picky.utils</h1><div class="doc"><div class="markdown"><p>Utility functions supporting the picky validator</p></div></div><div class="public anchor" id="var-activity-type.3F"><h3>activity-type?</h3><div class="usage"><code>(activity-type? x)</code></div><div class="doc"><div class="markdown"><p><code>true</code> if <code>x</code>, a string, represents a recognised ActivityStreams activity type.</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/utils.clj#L90">view source</a></div></div><div class="public anchor" id="var-actor-type.3F"><h3>actor-type?</h3><div class="usage"><code>(actor-type? x)</code></div><div class="doc"><div class="markdown"><p>Return <code>true</code> if the <code>x</code> is a recognised actor type, else <code>false</code>.</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/utils.clj#L32">view source</a></div></div><div class="public anchor" id="var-any-or-faults"><h3>any-or-faults</h3><div class="usage"><code>(any-or-faults options severity-if-none token)</code></div><div class="doc"><div class="markdown"><p>Return <code>nil</code> if validating one of these options returns <code>nil</code>; otherwise return a list comprising a fault report object with this <code>severity-if-none</code> and this token followed by all the fault reports from validating each option.</p>
|
||
<p>There are several places - but especially in validating collections - where there are several different valid configurations, but few or no properties are always required.</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/utils.clj#L223">view source</a></div></div><div class="public anchor" id="var-concat-non-empty"><h3>concat-non-empty</h3><div class="usage"><code>(concat-non-empty & lists)</code></div><div class="doc"><div class="markdown"><p>Quick function to replace the pattern (nil-if-empty (remove nil? (concat …))) which I’m using a lot!</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/utils.clj#L190">view source</a></div></div><div class="public anchor" id="var-cond-make-fault-object"><h3>cond-make-fault-object</h3><div class="usage"><code>(cond-make-fault-object v severity token)</code></div><div class="doc"><div class="markdown"><p>If <code>v</code> is <code>false</code> or <code>nil</code>, return a fault object with this <code>severity</code> and <code>token</code>, else return nil.</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/utils.clj#L238">view source</a></div></div><div class="public anchor" id="var-context.3F"><h3>context?</h3><div class="usage"><code>(context? x)</code></div><div class="doc"><div class="markdown"><p>Returns <code>true</code> iff <code>x</code> quacks like an ActivityStreams context, else false.</p>
|
||
<p>A context is either 1. the URI (actually an IRI) <code>activitystreams-context-uri</code>, or 2. a collection comprising that URI and a map.</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/utils.clj#L139">view source</a></div></div><div class="public anchor" id="var-filter-severity"><h3>filter-severity</h3><div class="usage"><code>(filter-severity reports severity)</code></div><div class="doc"><div class="markdown"><p>Return a list of reports taken from these <code>reports</code> where the severity of the report is greater than this or equal to this <code>severity</code>.</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/utils.clj#L114">view source</a></div></div><div class="public anchor" id="var-has-activity-type.3F"><h3>has-activity-type?</h3><div class="usage"><code>(has-activity-type? x)</code></div><div class="doc"><div class="markdown"><p>Return <code>true</code> if the object <code>x</code> has a type which is an activity type, else <code>false</code>.</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/utils.clj#L96">view source</a></div></div><div class="public anchor" id="var-has-actor-type.3F"><h3>has-actor-type?</h3><div class="usage"><code>(has-actor-type? x)</code></div><div class="doc"><div class="markdown"><p>Return <code>true</code> if the object <code>x</code> has a type which is an actor type, else <code>false</code>.</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/utils.clj#L105">view source</a></div></div><div class="public anchor" id="var-has-context.3F"><h3>has-context?</h3><h4 class="type">macro</h4><div class="usage"><code>(has-context? x)</code></div><div class="doc"><div class="markdown"><p>True if <code>x</code> is an ActivityStreams object with a valid context, else <code>false</code>.</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/utils.clj#L154">view source</a></div></div><div class="public anchor" id="var-has-type-or-fault"><h3>has-type-or-fault</h3><div class="usage"><code>(has-type-or-fault x acceptable severity token)</code></div><div class="doc"><div class="markdown"><p>If object <code>x</code> has a <code>:type</code> value which is <code>acceptable</code>, return <code>nil</code>; else return a fault object with this <code>severity</code> and <code>token</code>.</p>
|
||
<p><code>acceptable</code> may be passed as either nil, a string, or a set of strings. If <code>acceptable</code> is <code>nil</code>, no type specific tests will be performed.</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/utils.clj#L196">view source</a></div></div><div class="public anchor" id="var-has-type.3F"><h3>has-type?</h3><div class="usage"><code>(has-type? x acceptable)</code></div><div class="doc"><div class="markdown"><p>Return <code>true</code> if object <code>x</code> has a type in <code>acceptable</code>, else <code>false</code>.</p>
|
||
<p>The values of <code>:type</code> fields of ActivityStreams objects may be lists; they are considered to have a type if a member of the list is in <code>acceptable</code>.</p>
|
||
<p><code>acceptable</code> may be passed as a string, in which case there is only one acceptable value, or as a set of strings, in which case any member of the set is acceptable.</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/utils.clj#L49">view source</a></div></div><div class="public anchor" id="var-link-or-uri.3F"><h3>link-or-uri?</h3><h4 class="type">macro</h4><div class="usage"><code>(link-or-uri? x)</code></div><div class="doc"><div class="markdown"><p>Very basic check that <code>x</code> is either a link object or a URI.</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/utils.clj#L84">view source</a></div></div><div class="public anchor" id="var-make-fault-object"><h3>make-fault-object</h3><div class="usage"><code>(make-fault-object severity fault)</code></div><div class="doc"><div class="markdown"><p>Return a fault object with these <code>severity</code>, <code>fault</code> and <code>narrative</code> values.</p>
|
||
<p>An ActivityPub object MUST have a globally unique ID. Whether this is meaningful depends on whether we persist fault report objects and serve them, which at present I have no plans to do.</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/utils.clj#L159">view source</a></div></div><div class="public anchor" id="var-nil-if-empty"><h3>nil-if-empty</h3><h4 class="type">macro</h4><div class="usage"><code>(nil-if-empty x)</code></div><div class="doc"><div class="markdown"><p>if <code>x</code> is an empty collection, return <code>nil</code>; else return <code>x</code>.</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/utils.clj#L184">view source</a></div></div><div class="public anchor" id="var-object-or-uri.3F"><h3>object-or-uri?</h3><div class="usage"><code>(object-or-uri? x)</code><code>(object-or-uri? x type)</code></div><div class="doc"><div class="markdown"><p>Very basic check that <code>x</code> is either an object or a URI.</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/utils.clj#L68">view source</a></div></div><div class="public anchor" id="var-string-or-fault"><h3>string-or-fault</h3><div class="usage"><code>(string-or-fault value severity token)</code><code>(string-or-fault value severity token pattern)</code></div><div class="doc"><div class="markdown"><p>If this <code>value</code> is not a string, return a fault object with this <code>severity</code> and <code>token</code>, else <code>nil</code>. If <code>pattern</code> is also passed, it is expected to be a Regex, and the fault object will be returned unless <code>value</code> matches the <code>pattern</code>.</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/utils.clj#L244">view source</a></div></div><div class="public anchor" id="var-truthy.3F"><h3>truthy?</h3><div class="usage"><code>(truthy? x)</code></div><div class="doc"><div class="markdown"><p>Return <code>true</code> if <code>x</code> is truthy, else <code>false</code>. There must be some more idiomatic way to do this?</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/utils.clj#L37">view source</a></div></div><div class="public anchor" id="var-xsd-non-negative-integer.3F"><h3>xsd-non-negative-integer?</h3><div class="usage"><code>(xsd-non-negative-integer? x)</code></div><div class="doc"><div class="markdown"><p>Return <code>true</code> if <code>value</code> matches the pattern for an <a href="https://www.w3.org/TR/xmlschema11-2/#nonNegativeInteger">xsd:nonNegativeInteger</a>, else <code>false</code></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/utils.clj#L43">view source</a></div></div></div></body></html> |