doc/module-yumparse.Parser.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: Parser</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: Parser</h1>
<section>
<header>
<h2>
<span class="ancestors"><a href="module-yumparse.html">yumparse</a>.</span>
Parser
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="Parser"><span class="type-signature"></span>new Parser<span class="signature">(args)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Creates a yumparse Parser
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>args</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">Arguments to pass into the parser
<h6>Properties</h6>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>template</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last">The template that should be used for help/usage</td>
</tr>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">Object[]</span>
</td>
<td class="attributes">
</td>
<td class="description last">The options that should be parsed
<h6>Properties</h6>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>shortFlag</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">The short flag for that option</td>
</tr>
<tr>
<td class="name"><code>longFlag</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last">The long flag for that option</td>
</tr>
<tr>
<td class="name"><code>type</code></td>
<td class="type">
<span class="param-type">*</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
String
</td>
<td class="description last">The type for that option</td>
</tr>
<tr>
<td class="name"><code>required</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
false
</td>
<td class="description last">Set it to make it a required option</td>
</tr>
<tr>
<td class="name"><code>description</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">The description of the option</td>
</tr>
<tr>
<td class="name"><code>defaultValue</code></td>
<td class="type">
<span class="param-type">*</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last">The default value for the option</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line21">line 21</a>
</li></ul></dd>
</dl>
</dd>
</div>
<h3 class="subsection-title">Classes</h3>
<dl>
<dt><a href="module-yumparse.Parser-YumparseError.html">YumparseError</a></dt>
<dd></dd>
</dl>
<h3 class="subsection-title">Members</h3>
<dl>
<dt>
<h4 class="name" id="flagTypeOptions"><span class="type-signature"><readonly> </span>flagTypeOptions<span class="type-signature"> :Array</span></h4>
</dt>
<dd>
<div class="description">
Available flag options
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Array</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line160">line 160</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="options"><span class="type-signature"></span>options<span class="type-signature"> :Object</span></h4>
</dt>
<dd>
<div class="description">
An object with (String flagName, JSON option) pairs
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Object</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line267">line 267</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="optionsList"><span class="type-signature"></span>optionsList<span class="type-signature"> :Array</span></h4>
</dt>
<dd>
<div class="description">
The original options list that was passed in
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Array</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line122">line 122</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="parsedOptions"><span class="type-signature"></span>parsedOptions<span class="type-signature"> :Object</span></h4>
</dt>
<dd>
<div class="description">
Returns an object with parsed (String flag, JSON option) pairs
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Object</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line207">line 207</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="requiredList"><span class="type-signature"></span>requiredList<span class="type-signature"> :Array</span></h4>
</dt>
<dd>
<div class="description">
The list of options that have a required set to true
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Array</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line130">line 130</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="rules"><span class="type-signature"></span>rules<span class="type-signature"> :Array</span></h4>
</dt>
<dd>
<div class="description">
Contains the list of rules to be checked after parsing
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Array</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line280">line 280</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="template"><span class="type-signature"></span>template<span class="type-signature"> :String</span></h4>
</dt>
<dd>
<div class="description">
The default template
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">String</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line74">line 74</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="_B"><span class="type-signature"><private, inner> </span>_B<span class="type-signature"> :String</span></h4>
</dt>
<dd>
<div class="description">
Bold text (xterm color)
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">String</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line53">line 53</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="_U"><span class="type-signature"><private, inner> </span>_U<span class="type-signature"> :String</span></h4>
</dt>
<dd>
<div class="description">
Underline text (xterm color)
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">String</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line46">line 46</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="B_"><span class="type-signature"><private, inner> </span>B_<span class="type-signature"> :String</span></h4>
</dt>
<dd>
<div class="description">
Normal text (xterm color, ends bold text)
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">String</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line60">line 60</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="longestFlag"><span class="type-signature"><inner> </span>longestFlag<span class="type-signature"> :Number</span></h4>
</dt>
<dd>
<div class="description">
The longest flag length
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Number</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line136">line 136</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="U_"><span class="type-signature"><private, inner> </span>U_<span class="type-signature"> :String</span></h4>
</dt>
<dd>
<div class="description">
Normal text (xterm color, ends underlined text)
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">String</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line67">line 67</a>
</li></ul></dd>
</dl>
</dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="addRule"><span class="type-signature"></span>addRule<span class="signature">(rule)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Adds a rule to check as part of the parsing
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>rule</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The rule object
<h6>Properties</h6>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>message</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last">A function that returns an error message if the rule fails</td>
</tr>
<tr>
<td class="name"><code>check</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="attributes">
</td>
<td class="description last">The rule-check function to run. Returns true on success and false on failure.</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line288">line 288</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="displayHelp"><span class="type-signature"></span>displayHelp<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Display help and exit the program
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line305">line 305</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="flagBlock"><span class="type-signature"></span>flagBlock<span class="signature">()</span><span class="type-signature"> → {String}</span></h4>
</dt>
<dd>
<div class="description">
A mustache js helper function that returns a flag block
</div>
<h5>This:</h5>
<ul><li><a href="module-yumparse.Parser.html#parseOptions">module:yumparse.Parser~parseOptions</a></li></ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line146">line 146</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
A flag block string
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">String</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="flagToName"><span class="type-signature"></span>flagToName<span class="signature">(flag)</span><span class="type-signature"> → {String}</span></h4>
</dt>
<dd>
<div class="description">
Convert a flag (spinal case) to a variable name (camel case)
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>flag</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The flag to convert</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line167">line 167</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
The variable name
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">String</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="helpString"><span class="type-signature"></span>helpString<span class="signature">()</span><span class="type-signature"> → {String}</span></h4>
</dt>
<dd>
<div class="description">
Help string
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line300">line 300</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
The help string
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">String</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="nameToFlag"><span class="type-signature"></span>nameToFlag<span class="signature">(name)</span><span class="type-signature"> → {String}</span></h4>
</dt>
<dd>
<div class="description">
Convert a variable name (camel case) to a flag (spinal case)
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">The name to convert</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line188">line 188</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
The flag
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">String</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="parse"><span class="type-signature"></span>parse<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Parses the process.argv arguments and runs the checks for the rules
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line314">line 314</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Sets this.parsedOptions to the parsed options after all rules pass
</div>
</dd>
<dt>
<h4 class="name" id="addParsedOption"><span class="type-signature"><private, inner> </span>addParsedOption<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Adds a parsed option (see: <a href="module-yumparse.Parser.html#parse">module:yumparse.Parser#parse</a>)
</div>
<h5>This:</h5>
<ul><li><a href="module-yumparse.Parser.html">module:yumparse.Parser</a></li></ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line322">line 322</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="checkRequiredFlags"><span class="type-signature"><private, inner> </span>checkRequiredFlags<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Check if required flags are passed (see <a href="module-yumparse.Parser.html#parse">module:yumparse.Parser#parse</a>)
</div>
<h5>This:</h5>
<ul><li><a href="module-yumparse.Parser.html">module:yumparse.Parser</a></li></ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line380">line 380</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="checkRules"><span class="type-signature"><private, inner> </span>checkRules<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Check rules
</div>
<h5>This:</h5>
<ul><li><a href="module-yumparse.Parser.html">module:yumparse.Parser</a></li></ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line493">line 493</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="collectFlags"><span class="type-signature"><private, inner> </span>collectFlags<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Collects the flags and thier values from process.argv and adds them to parsedOptions (see <a href="module-yumparse.Parser.html#parse">module:yumparse.Parser#parse</a>)
</div>
<h5>This:</h5>
<ul><li><a href="module-yumparse.Parser.html">module:yumparse.Parser</a></li></ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line335">line 335</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="displayParsedHelp"><span class="type-signature"><private, inner> </span>displayParsedHelp<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Display parsed help
</div>
<h5>This:</h5>
<ul><li><a href="module-yumparse.Parser.html">module:yumparse.Parser</a></li></ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line478">line 478</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="parseOptions"><span class="type-signature"><inner> </span>parseOptions<span class="signature">(options)</span><span class="type-signature"> → {Object}</span></h4>
</dt>
<dd>
<div class="description">
Parse options
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">The options to parse</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line214">line 214</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
The parsed options
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Object</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="typeCheck"><span class="type-signature"><private, inner> </span>typeCheck<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Typecheck the parsed options
</div>
<h5>This:</h5>
<ul><li><a href="module-yumparse.Parser.html">module:yumparse.Parser</a></li></ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="yumparse.js.html">yumparse.js</a>, <a href="yumparse.js.html#line411">line 411</a>
</li></ul></dd>
</dl>
</dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-helpers.html">helpers</a></li><li><a href="module-rules.html">rules</a></li><li><a href="module-yumparse.html">yumparse</a></li></ul><h3>Classes</h3><ul><li><a href="module-yumparse.Parser.html">Parser</a></li><li><a href="module-yumparse.Parser-YumparseError.html">YumparseError</a></li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Mon Dec 29 2014 23:32:09 GMT-0800 (PST)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>