<p>The first non-option is considered to be the start of the file (and file
option) list, and all subsequent arguments are left unparsed.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">exports.OptionParser: </span><spanclass="nx">class</span><spanclass="nx">OptionParser</span></pre></div></td></tr><trid="section-2"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-2">#</a></div><p>Initialize with a list of valid options, in the form:</p>
<p>Along with an an optional banner for the usage help.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">constructor: </span><spanclass="p">(</span><spanclass="nx">rules</span><spanclass="p">,</span><spanclass="nx">banner</span><spanclass="p">)</span><spanclass="o">-></span>
<spanclass="vi">@rules: </span><spanclass="nx">buildRules</span><spanclass="p">(</span><spanclass="nx">rules</span><spanclass="p">)</span></pre></div></td></tr><trid="section-3"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-3">#</a></div><p>Parse the list of arguments, populating an <code>options</code> object with all of the
specified options, and returning it. <code>options.arguments</code> will be an array
containing the remaning non-option arguments. This is a simpler API than
many option parsers that allow you to attach callback actions for every
flag. Instead, you're responsible for interpreting the options object.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">parse: </span><spanclass="p">(</span><spanclass="nx">args</span><spanclass="p">)</span><spanclass="o">-></span>
<spanclass="nx">options</span></pre></div></td></tr><trid="section-4"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-4">#</a></div><p>Return the help text for this <strong>OptionParser</strong>, listing and describing all
of the valid options, for <code>--help</code> and such.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">help: </span><spanclass="o">-></span>
<spanclass="nv">OPTIONAL: </span><spanclass="sr">/\[(.+)\]/</span></pre></div></td></tr><trid="section-7"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-7">#</a></div><p>Build and return the list of option rules. If the optional <em>short-flag</em> is
unspecified, leave it out by padding with <code>null</code>.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">buildRules: </span><spanclass="p">(</span><spanclass="nx">rules</span><spanclass="p">)</span><spanclass="o">-></span>
<spanclass="nx">buildRule</span><spanclass="nx">tuple</span><spanclass="p">...</span></pre></div></td></tr><trid="section-8"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-8">#</a></div><p>Build a rule from a <code>-o</code> short flag, a <code>--output [DIR]</code> long flag, and the
description of what the option does.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">buildRule: </span><spanclass="p">(</span><spanclass="nx">shortFlag</span><spanclass="p">,</span><spanclass="nx">longFlag</span><spanclass="p">,</span><spanclass="nx">description</span><spanclass="p">)</span><spanclass="o">-></span>
<spanclass="p">}</span></pre></div></td></tr><trid="section-9"><tdclass="docs"><divclass="octowrap"><aclass="octothorpe"href="#section-9">#</a></div><p>Normalize arguments by expanding merged flags into multiple flags. This allows
you to have <code>-wl</code> be the same as <code>--watch --lint</code>.</p></td><tdclass="code"><divclass="highlight"><pre><spanclass="nv">normalizeArguments: </span><spanclass="p">(</span><spanclass="nx">args</span><spanclass="p">)</span><spanclass="o">-></span>