Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
645 changes: 645 additions & 0 deletions doc/assets/behavior.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions doc/assets/style.css

Large diffs are not rendered by default.

25 changes: 25 additions & 0 deletions doc/dependencies.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!DOCTYPE html><html lang="en"><head><title>dependencies</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content=""><meta name="groc-document-path" content="dependencies"><meta name="groc-project-path" content="lib/dependencies.js"><link rel="stylesheet" type="text/css" media="all" href="assets/style.css"><script type="text/javascript" src="assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/dependencies.js</div></div><div id="document"><div class="segment"><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">deps</span> <span class="o">=</span> <span class="nx">module</span><span class="p">.</span><span class="nx">exports</span><span class="p">;</span></div></div></div><div class="segment"><div class="comments doc-section"><div class="wrapper"><p>Retrieve the path to binaries installed as part of
npm dependency packages. This is done by getting
the path to any available module, then deconstructing
the path to get the node_modules/.bin directory path.
Currently the binary is assumed to have the same name
as the module. This is fragile - it just happens that
both casperjs and phantomjs meet that condition.</p>

<p>Parameters:</p>

<ul>
<li><strong>module must be a String.</strong><br/>(name of the module)</li>
</ul>

<p><strong>Returns a String</strong><br/>(path to the binary)</p></div></div><div class="code"><div class="wrapper"><span class="nx">deps</span><span class="p">.</span><span class="nx">getbinpath</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">module</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">&#39;function getbinpath: &#39;</span> <span class="o">+</span> <span class="nx">module</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">modpath</span> <span class="o">=</span> <span class="nx">require</span><span class="p">.</span><span class="nx">resolve</span><span class="p">(</span><span class="s1">&#39;shelljs&#39;</span><span class="p">).</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">phantomidx</span> <span class="o">=</span> <span class="nx">modpath</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;shelljs&#39;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">binpath</span> <span class="o">=</span> <span class="nx">modpath</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">phantomidx</span><span class="p">);</span>
<span class="nx">binpath</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="s1">&#39;.bin&#39;</span><span class="p">);</span>
<span class="nx">binpath</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">module</span><span class="p">);</span>
<span class="nx">binpath</span> <span class="o">=</span> <span class="nx">binpath</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">);</span>
<span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">&#39;path for module :&#39;</span> <span class="o">+</span> <span class="nx">module</span> <span class="o">+</span> <span class="s1">&#39;: &#39;</span> <span class="o">+</span> <span class="nx">binpath</span><span class="p">);</span>
<span class="k">return</span><span class="p">(</span><span class="nx">binpath</span><span class="p">);</span>
<span class="p">};</span></div></div></div></div></body></html>
58 changes: 58 additions & 0 deletions doc/dom.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<!DOCTYPE html><html lang="en"><head><title>dom</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content=""><meta name="groc-document-path" content="dom"><meta name="groc-project-path" content="lib/dom.js"><link rel="stylesheet" type="text/css" media="all" href="assets/style.css"><script type="text/javascript" src="assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/dom.js</div></div><div id="document"><div class="segment"><div class="comments "><div class="wrapper"><p>tools for rendering the DOM and
manipulating DOM nodes</p></div></div></div><div class="segment"><div class="comments "><div class="wrapper"><p>jsdom lets us re-render the DOM from raw HTML</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">jsdom</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;jsdom-little&#39;</span><span class="p">).</span><span class="nx">jsdom</span><span class="p">;</span></div></div></div><div class="segment"><div class="comments "><div class="wrapper"><p>xpath lets us use xpath selectors on the rendered DOM</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">xpath</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;xpath&#39;</span><span class="p">);</span>

<span class="kd">var</span> <span class="nx">dom</span> <span class="o">=</span> <span class="nx">module</span><span class="p">.</span><span class="nx">exports</span><span class="p">;</span></div></div></div><div class="segment"><div class="comments doc-section"><div class="wrapper"><p>Render a DOM from HTML</p>

<p>Parameters:</p>

<ul>
<li><strong>html must be a String.</strong><br/>(HTML to render)</li>
</ul>

<p><strong>Returns an Object</strong><br/>(the rendered DOM)</p></div></div><div class="code"><div class="wrapper"><span class="nx">dom</span><span class="p">.</span><span class="nx">render</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">html</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">new</span> <span class="nx">jsdom</span><span class="p">(</span><span class="nx">html</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="p">{</span>
<span class="nx">features</span><span class="o">:</span> <span class="p">{</span>
<span class="nx">FetchExternalResources</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>
<span class="nx">ProcessExternalResources</span><span class="o">:</span> <span class="kc">false</span>
<span class="p">}</span>
<span class="p">});</span>
<span class="p">}</span></div></div></div><div class="segment"><div class="comments doc-section"><div class="wrapper"><p>Clean up an element by stripping out chains of whitespace
and newlines.</p>

<p>Parameters:</p>

<ul>
<li><strong>str must be a String.</strong><br/>(element text)</li>
</ul>

<p><strong>Returns a String</strong><br/>(the cleaned string)</p></div></div><div class="code"><div class="wrapper"><span class="nx">dom</span><span class="p">.</span><span class="nx">cleanElement</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">str</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">str</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\s{2,}/mg</span><span class="p">,</span><span class="s1">&#39; &#39;</span><span class="p">).</span><span class="nx">trim</span><span class="p">();</span>
<span class="p">}</span></div></div></div><div class="segment"><div class="comments doc-section"><div class="wrapper"><p>Extract a specified attribute from a node</p>

<p>Parameters:</p>

<ul>
<li><p><strong>node must be a Node.</strong><br/>(the DOM node)</p></li>
<li><p><strong>attribute must be a String.</strong><br/>(the name of the attribute to extract)</p></li>
</ul>

<p><strong>Returns a String</strong><br/>(the attribute value)</p></div></div><div class="code"><div class="wrapper"><span class="nx">dom</span><span class="p">.</span><span class="nx">getAttribute</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">attribute</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">attribute</span> <span class="o">||</span> <span class="nx">attribute</span> <span class="o">==</span> <span class="s1">&#39;text&#39;</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">node</span><span class="p">.</span><span class="nx">textContent</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">attribute</span> <span class="o">==</span> <span class="s1">&#39;html&#39;</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">node</span><span class="p">.</span><span class="nx">innerHTML</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">node</span><span class="p">.</span><span class="nx">getAttribute</span><span class="p">(</span><span class="nx">attribute</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span></div></div></div><div class="segment"><div class="comments doc-section"><div class="wrapper"><p>Select a DOM node matching an XPath selector</p>

<p>Parameters:</p>

<ul>
<li><p><strong>selector must be a String.</strong><br/>(an XPath selector)</p></li>
<li><p><strong>doc must be an Object.</strong><br/>(the DOM to search)</p></li>
</ul>

<p><strong>Returns a Node</strong><br/>(the selected node)</p></div></div><div class="code"><div class="wrapper"><span class="nx">dom</span><span class="p">.</span><span class="nx">select</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">selector</span><span class="p">,</span> <span class="nx">doc</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">xpath</span><span class="p">.</span><span class="nx">select</span><span class="p">(</span><span class="nx">selector</span><span class="p">,</span> <span class="nx">doc</span><span class="p">);</span>
<span class="p">}</span></div></div></div></div></body></html>
Loading