UNPKG

documon

Version:

A documentation system for mortals. Use with any language.

1,248 lines (623 loc) 38.8 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>organizer</title> <meta name="description" content="Organizes the parsed source-code data into a single object that takes the following form:"> <!-- Normalize --> <link rel="stylesheet" href="assets/vendor/normalize.css"> <!-- prettify --> <link rel="stylesheet" href="assets/vendor/prettify/codamike.css"> <script src="assets/vendor/prettify/prettify.js"></script> <!-- Documon Pages Info. (Used by various classes to identify this page.) --> <script> var pageCtx = { id : "documon.organizer", name: "organizer" } </script> <!-- theme <link rel="stylesheet" href="assets/fonts/Fira_Sans/FiraSans.css"> <link rel="stylesheet" href="assets/fonts/Inconsolata/inconsolata.css"> --> <link rel="stylesheet" href="assets/css/pages.css"> <script src="assets/js/documon/Storage.js"></script> <script src="assets/js/documon/Access.js"></script> <script src="assets/js/documon/Pages.js"></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-106684927-1', 'auto'); ga('send', 'pageview'); </script> </head> <body> <div class="page"> <div class="main-method"> <a name="methods"></a> <div class="part-methods"> <a name="documon.organizer"></a><a name="organizer"></a> <div class="member" > <div class="member-name clearfix"> <span class="member-name-left"> organizer () </span> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span> <span class="member-line-number">71</span> </span> </div> <div class="member-description"> <div class="meta-block meta-block-klass"> <div class="meta-line"><span class="meta-label" >xpath</span> <span class="meta-target">documon.organizer<span></div> <div class="meta-line"><span class="meta-label" >file</span> <span class="meta-target">documon/src/organizer.js<span></div> </div> <p>Organizes the parsed source-code data into a single object that takes the following form:</p> <pre><code>organ = { // There will always be a root node with an absolute ID of "root" id : "root", name : "root", file : "root.html", docfile : "root.html", packages : [ { packages : foo // Classes included in this package classes : [ { class : "foo" methods : [], properties : [], events : [] }, ... etc ... ], // Loose stuff found in this package methods : [], properties : [], events : [] } ], // Independent classes that are not part of any package classes : [ { class : "foo" methods : [], properties : [], events : [] } ... etc ... ], // Loose stuff that's not part of any package or class, assumed to be accessible "this" (e.g. in javascript it would be the "window" scope) methods : [], properties : [], events : [], };</code></pre> <p>All source code hangs off of the "root" node and is organized according it's relationship to a package or class.</p> <p>This organizer is initialized prior to parsing source code, and as each file is parsed, it is added to the organizer. After all the source-code is finished parsing, the organizer wires up adn cross references inheritance.</p> </div> </div> </div> </div> <div class="parts"> <a name="properties"></a> <div class="part-properties"> <div class="heading-part">Properties</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <a name="documon.organizer.flatClassList"></a><a name="flatClassList"></a> <span class="member-name">flatClassList</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span><span class="member-line-number" title="documon/src/organizer.js">100</span> </span> <div class="param-description"> <span class="type">Object</span> <div class="member-description"> <p>We maintain a "flat list" as a means to cross reference items that are stuffed into the main array.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <a name="documon.organizer.mainConf"></a><a name="mainConf"></a> <span class="member-name">mainConf</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span><span class="member-line-number" title="documon/src/organizer.js">80</span> </span> <div class="param-description"> <span class="type">Object</span> <div class="member-description"> <p>A reference to the main configuration object. See <a href="documon.mainConf">documon.mainConf</a>.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <a name="documon.organizer.organ"></a><a name="organ"></a> <span class="member-name">organ</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span><span class="member-line-number" title="documon/src/organizer.js">85</span> </span> <div class="param-description"> <span class="type">Object</span> <div class="member-description"> <p>The primary object we store all data into.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <a name="documon.organizer.sectionNames"></a><a name="sectionNames"></a> <span class="member-name">sectionNames</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span><span class="member-line-number" title="documon/src/organizer.js">106</span> </span> <div class="param-description"> <span class="type">Array</span> <div class="member-description"> <p>The complete list of sections a class or package can contain.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <a name="documon.organizer.Tclass"></a><a name="Tclass"></a> <span class="member-name">Tclass</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span><span class="member-line-number" title="documon/src/organizer.js">95</span> </span> <div class="param-description"> <span class="type">Template</span> <div class="member-description"> <p>The class template processor (jst file).</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <a name="documon.organizer.Tpackage"></a><a name="Tpackage"></a> <span class="member-name">Tpackage</span> </div> <div class="member-block-center"> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span><span class="member-line-number" title="documon/src/organizer.js">90</span> </span> <div class="param-description"> <span class="type">Template</span> <div class="member-description"> <p>The package template processor (jst file).</p> </div> </div> </div> </div> </div> </div> </div> <a name="methods"></a> <div class="part-methods"> <div class="heading-part">Methods</div> <a name="documon.organizer.add"></a><a name="add"></a> <div class="member" > <div class="member-name clearfix"> <span class="member-name-left"> add (<span class="method-arguments">VtaggedPage</span>) </span> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span> <span class="member-line-number">550</span> </span> </div> <div class="member-description"> <p>Adds source-code data to the organ. The data needs to be formated from the "tag.js" processor. By reading the data we determine where it is to be added to the main organ.</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">VtaggedPage</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">type</span> <div class="member-description"> <p>Source-code data parse by the tag.js processor.</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> <a name="documon.organizer.addToClassList"></a><a name="addToClassList"></a> <div class="member" > <div class="member-name clearfix"> <span class="member-name-left"> addToClassList (<span class="method-arguments">list</span>, <span class="method-arguments">taggedPage</span>) </span> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span> <span class="member-line-number">522</span> </span> </div> <div class="member-description"> <p>Adds tagged data to a class array. Ensures this item is only addded once, and also place a refernce to the item in the flat list for future processing.</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">list</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">type</span> <div class="member-description"> <p>The class array to add the item to.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">taggedPage</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">type</span> <div class="member-description"> <p>The data to add.</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> <a name="documon.organizer.addToPackageList"></a><a name="addToPackageList"></a> <div class="member" > <div class="member-name clearfix"> <span class="member-name-left"> addToPackageList (<span class="method-arguments">list</span>, <span class="method-arguments">taggedPage</span>) </span> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span> <span class="member-line-number">480</span> </span> </div> <div class="member-description"> <p>Adds a new package to the main packages list. Creates a namespace (package) if not exist.</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">list</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">type</span> <div class="member-description"> <p>The main package list to add the package to.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">taggedPage</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">type</span> <div class="member-description"> <p>The package data.</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> <a name="documon.organizer.appendPage"></a><a name="appendPage"></a> <div class="member" > <div class="member-name clearfix"> <span class="member-name-left"> appendPage (<span class="method-arguments">existingObj</span>, <span class="method-arguments">newObj</span>) </span> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span> <span class="member-line-number">437</span> </span> </div> <div class="member-description"> <p>Adds a class or package to the class or package object.</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">existingObj</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">type</span> <div class="member-description"> <p>The object ot add the thing to.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">newObj</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">type</span> <div class="member-description"> <p>THe thing we're adding.</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> <a name="documon.organizer.buildMenu"></a><a name="buildMenu"></a> <div class="member" > <div class="member-name clearfix"> <span class="member-name-left"> buildMenu () </span> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span> <span class="member-line-number">632</span> </span> </div> <div class="member-description"> <p>Generates a copy of the main organ that is sorted alphabetically, suitable for use wiht <a href="documon.menuBuilder">menuBuilder</a></p> <div class="heading-returns">Returns <span class="type">type</span> </div> <div class="member"><p>description description</p></div> </div> </div> <a name="documon.organizer.init"></a><a name="init"></a> <div class="member" > <div class="member-name clearfix"> <span class="member-name-left"> init (<span class="method-arguments">params</span>) </span> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span> <span class="member-line-number">309</span> </span> </div> <div class="member-description"> <p>Initializes the the "organ", which is an object that we'll be inserting all the tagged data into.</p> <p>We'll also be grabbing the templates needed based on the location defined in the params.</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">params</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">type</span> <div class="member-description"> <p>The configuration options sent in by the user during <a href="documon.mainConf">documon.mainConf</a>. We keep a refence here so we know where to put things. Note that documon derives some additional properties onto the object.</p> </div> <div class="part-parameters"> <div class="heading-part">params properties</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">templateFolder</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">type</span> <div class="member-description"> <p>The base path to the template folder.</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <a name="documon.organizer.merge"></a><a name="merge"></a> <div class="member" > <div class="member-name clearfix"> <span class="member-name-left"> merge (<span class="method-arguments">a</span>, <span class="method-arguments">b</span>, <span class="method-arguments">prop</span>) </span> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span> <span class="member-line-number">381</span> </span> </div> <div class="member-description"> <p>A classic array merge routine.</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">a</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">array</span> <div class="member-description"> <p>The array that we will add items to if "prop"</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">b</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">array</span> <div class="member-description"> <p>The array we will merge into A if one of it's item[prop] doesn't exists in A.</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">prop</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">string</span> <div class="member-description"> <p>The property used to validate if items in B need to be merged into A.</p> </div> </div> </div> </div> </div> </div> </div> <div class="heading-returns">Returns <span class="type">array</span> </div> <div class="member"><p>A new array containing all unique elements from A and B.</p></div> </div> </div> <a name="documon.organizer.sortObj"></a><a name="sortObj"></a> <div class="member" > <div class="member-name clearfix"> <span class="member-name-left"> sortObj (<span class="method-arguments">obj</span>, <span class="method-arguments method-arg-optional">prop</span>) </span> <span class="member-name-right"> <span class="member-file">documon/src/organizer.js</span> <span class="member-line-number">585</span> </span> </div> <div class="member-description"> <p>Sorts all main sections of an organ on a given key. By default sorting is conducted on the "id" key.</p> <div class="part-parameters"> <div class="heading-part">Parameters</div> <div class="member"> <div class="member-block-group"> <div class="member-block" > <div class="member-block-left"> <span class="member-name">obj</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">object</span> <div class="member-description"> <p>The object to sort</p> </div> </div> </div> </div> <div class="member-block" > <div class="member-block-left"> <span class="member-name">prop</span> </div> <div class="member-block-center"> <span class="member-name-right"> </span> <div class="param-description"> <span class="type">string</span> <span class="flag optional">optional</span> <span class="default-value"> id </span> <div class="member-description"> <p>The key to sort on.</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="footer">Generated by <a href="http://www.documon.net" target="_blank">Documon</a></div> </body> </html>