arachnid/docs/Arachnid.html

795 lines
24 KiB
HTML
Raw Normal View History

2019-06-27 03:25:07 +00:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="generator" content="Crystal Docs 0.29.0">
<link href="css/style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/doc.js"></script>
<script type="text/javascript">
CrystalDoc.base_path = "";
</script>
<meta id="repository-name" content="github.com/watzon/arachnid">
<title>Arachnid - github.com/watzon/arachnid</title>
</head>
<body>
<div class="sidebar">
<div class="sidebar-header">
<div class="search-box">
<input type="search" class="search-input" placeholder="Search..." spellcheck="false" aria-label="Search">
</div>
<div class="repository-links">
<a href="index.html">README</a>
</div>
</div>
<div class="search-results" class="hidden">
<ul class="search-list"></ul>
</div>
<div class="types-list">
<ul>
<li class="parent open current" data-id="github.com/watzon/arachnid/Arachnid" data-name="arachnid">
<a href="Arachnid.html">Arachnid</a>
<ul>
<li class="parent " data-id="github.com/watzon/arachnid/Arachnid/Agent" data-name="arachnid::agent">
<a href="Arachnid/Agent.html">Agent</a>
<ul>
<li class="parent " data-id="github.com/watzon/arachnid/Arachnid/Agent/Actions" data-name="arachnid::agent::actions">
<a href="Arachnid/Agent/Actions.html">Actions</a>
<ul>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Agent/Actions/Action" data-name="arachnid::agent::actions::action">
<a href="Arachnid/Agent/Actions/Action.html">Action</a>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Agent/Actions/Paused" data-name="arachnid::agent::actions::paused">
<a href="Arachnid/Agent/Actions/Paused.html">Paused</a>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Agent/Actions/RuntimeError" data-name="arachnid::agent::actions::runtimeerror">
<a href="Arachnid/Agent/Actions/RuntimeError.html">RuntimeError</a>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Agent/Actions/SkipLink" data-name="arachnid::agent::actions::skiplink">
<a href="Arachnid/Agent/Actions/SkipLink.html">SkipLink</a>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Agent/Actions/SkipResource" data-name="arachnid::agent::actions::skipresource">
<a href="Arachnid/Agent/Actions/SkipResource.html">SkipResource</a>
</li>
</ul>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Agent/Queue" data-name="arachnid::agent::queue">
<a href="Arachnid/Agent/Queue.html">Queue</a>
</li>
</ul>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/AuthCredential" data-name="arachnid::authcredential">
<a href="Arachnid/AuthCredential.html">AuthCredential</a>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/AuthStore" data-name="arachnid::authstore">
<a href="Arachnid/AuthStore.html">AuthStore</a>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/CookieJar" data-name="arachnid::cookiejar">
<a href="Arachnid/CookieJar.html">CookieJar</a>
</li>
<li class="parent " data-id="github.com/watzon/arachnid/Arachnid/Document" data-name="arachnid::document">
<a href="Arachnid/Document.html">Document</a>
<ul>
<li class="parent " data-id="github.com/watzon/arachnid/Arachnid/Document/HTML" data-name="arachnid::document::html">
<a href="Arachnid/Document/HTML.html">HTML</a>
<ul>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Document/HTML/Tag" data-name="arachnid::document::html::tag">
<a href="Arachnid/Document/HTML/Tag.html">Tag</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="parent " data-id="github.com/watzon/arachnid/Arachnid/Resource" data-name="arachnid::resource">
<a href="Arachnid/Resource.html">Resource</a>
<ul>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Resource/ContentTypes" data-name="arachnid::resource::contenttypes">
<a href="Arachnid/Resource/ContentTypes.html">ContentTypes</a>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Resource/Cookies" data-name="arachnid::resource::cookies">
<a href="Arachnid/Resource/Cookies.html">Cookies</a>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Resource/HTML" data-name="arachnid::resource::html">
<a href="Arachnid/Resource/HTML.html">HTML</a>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Resource/StatusCodes" data-name="arachnid::resource::statuscodes">
<a href="Arachnid/Resource/StatusCodes.html">StatusCodes</a>
</li>
</ul>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/Rules" data-name="arachnid::rules(t)">
<a href="Arachnid/Rules.html">Rules</a>
</li>
<li class=" " data-id="github.com/watzon/arachnid/Arachnid/SessionCache" data-name="arachnid::sessioncache">
<a href="Arachnid/SessionCache.html">SessionCache</a>
</li>
</ul>
</li>
<li class=" " data-id="github.com/watzon/arachnid/URI" data-name="uri">
<a href="URI.html">URI</a>
</li>
</ul>
</div>
</div>
<div class="main-content">
<h1 class="type-name">
<span class="kind">module</span> Arachnid
</h1>
<h2>Extended Modules</h2>
<ul class="other-types-list">
<li class="other-type"><a href="Arachnid.html">Arachnid</a></li>
</ul>
<h2>Defined in:</h2>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/version.cr#L1" target="_blank">
arachnid/version.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/resource/content_types.cr#L1" target="_blank">
arachnid/resource/content_types.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/resource/cookies.cr#L1" target="_blank">
arachnid/resource/cookies.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/resource/html.cr#L3" target="_blank">
arachnid/resource/html.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/resource/status_codes.cr#L1" target="_blank">
arachnid/resource/status_codes.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/document/html.cr#L3" target="_blank">
arachnid/document/html.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/resource.cr#L11" target="_blank">
arachnid/resource.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/agent/sanitizers.cr#L1" target="_blank">
arachnid/agent/sanitizers.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/rules.cr#L1" target="_blank">
arachnid/rules.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/agent/filters.cr#L3" target="_blank">
arachnid/agent/filters.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/agent/events.cr#L3" target="_blank">
arachnid/agent/events.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/agent/actions.cr#L1" target="_blank">
arachnid/agent/actions.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/agent/robots.cr#L1" target="_blank">
arachnid/agent/robots.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/session_cache.cr#L4" target="_blank">
arachnid/session_cache.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/cookie_jar.cr#L1" target="_blank">
arachnid/cookie_jar.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/auth_credential.cr#L1" target="_blank">
arachnid/auth_credential.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/auth_store.cr#L6" target="_blank">
arachnid/auth_store.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/agent.cr#L11" target="_blank">
arachnid/agent.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L4" target="_blank">
arachnid/arachnid.cr
</a>
<br/>
<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/agent/queue.cr#L5" target="_blank">
arachnid/agent/queue.cr
</a>
<br/>
<h2>Constant Summary</h2>
<dl>
<dt class="entry-const" id="VERSION">
<strong>VERSION</strong> = <code><span class="s">&quot;0.1.0&quot;</span></code>
</dt>
</dl>
<h2>Class Method Summary</h2>
<ul class="list-summary">
<li class="entry-summary">
<a href="#connect_timeout%3AInt32-class-method" class="signature"><strong>.connect_timeout</strong> : Int32</a>
<div class="summary"><p>Connect timeout.</p></div>
</li>
<li class="entry-summary">
<a href="#connect_timeout%3D%28connect_timeout%3AInt32%29-class-method" class="signature"><strong>.connect_timeout=</strong>(connect_timeout : Int32)</a>
<div class="summary"><p>Connect timeout.</p></div>
</li>
<li class="entry-summary">
<a href="#do_not_track%3D%28do_not_track%3ABool%29-class-method" class="signature"><strong>.do_not_track=</strong>(do_not_track : Bool)</a>
<div class="summary"><p>Should we set the DNT (Do Not Track) header?</p></div>
</li>
<li class="entry-summary">
<a href="#do_not_track%3F%3ABool-class-method" class="signature"><strong>.do_not_track?</strong> : Bool</a>
<div class="summary"><p>Should we set the DNT (Do Not Track) header?</p></div>
</li>
<li class="entry-summary">
<a href="#max_redirects%3AInt32-class-method" class="signature"><strong>.max_redirects</strong> : Int32</a>
<div class="summary"><p>Maximum amount of redirects to follow</p></div>
</li>
<li class="entry-summary">
<a href="#max_redirects%3D%28max_redirects%3AInt32%29-class-method" class="signature"><strong>.max_redirects=</strong>(max_redirects : Int32)</a>
<div class="summary"><p>Maximum amount of redirects to follow</p></div>
</li>
<li class="entry-summary">
<a href="#read_timeout%3AInt32-class-method" class="signature"><strong>.read_timeout</strong> : Int32</a>
<div class="summary"><p>Read timeout.</p></div>
</li>
<li class="entry-summary">
<a href="#read_timeout%3D%28read_timeout%3AInt32%29-class-method" class="signature"><strong>.read_timeout=</strong>(read_timeout : Int32)</a>
<div class="summary"><p>Read timeout.</p></div>
</li>
<li class="entry-summary">
<a href="#robots%3D%28robots%3ABool%29-class-method" class="signature"><strong>.robots=</strong>(robots : Bool)</a>
<div class="summary"><p>Specifies whether robots.txt should be honored globally</p></div>
</li>
<li class="entry-summary">
<a href="#robots%3F%3ABool-class-method" class="signature"><strong>.robots?</strong> : Bool</a>
<div class="summary"><p>Specifies whether robots.txt should be honored globally</p></div>
</li>
<li class="entry-summary">
<a href="#user_agent%3AString-class-method" class="signature"><strong>.user_agent</strong> : String</a>
<div class="summary"><p>The User-Agent string used by all Agent objects by default.</p></div>
</li>
<li class="entry-summary">
<a href="#user_agent%3D%28user_agent%3AString%29-class-method" class="signature"><strong>.user_agent=</strong>(user_agent : String)</a>
<div class="summary"><p>The User-Agent string used by all Agent objects by default.</p></div>
</li>
</ul>
<h2>Instance Method Summary</h2>
<ul class="list-summary">
<li class="entry-summary">
<a href="#host%28name%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-instance-method" class="signature"><strong>#host</strong>(name, **options, &block : Agent -> )</a>
<div class="summary"><p>See <code><a href="Arachnid/Agent.html#host%28url%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-class-method">Agent.host</a></code></p></div>
</li>
<li class="entry-summary">
<a href="#site%28url%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-instance-method" class="signature"><strong>#site</strong>(url, **options, &block : Agent -> )</a>
<div class="summary"><p>See <code><a href="Arachnid/Agent.html#site%28url%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-class-method">Agent.site</a></code></p></div>
</li>
<li class="entry-summary">
<a href="#start_at%28url%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-instance-method" class="signature"><strong>#start_at</strong>(url, **options, &block : Agent -> )</a>
<div class="summary"><p>See <code><a href="Arachnid/Agent.html#start_at%28url%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-class-method">Agent.start_at</a></code></p></div>
</li>
</ul>
<div class="methods-inherited">
</div>
<h2>Class Method Detail</h2>
<div class="entry-detail" id="connect_timeout:Int32-class-method">
<div class="signature">
def self.<strong>connect_timeout</strong> : Int32
<a class="method-permalink" href="#connect_timeout%3AInt32-class-method">#</a>
</div>
<div class="doc"><p>Connect timeout.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L19" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="connect_timeout=(connect_timeout:Int32)-class-method">
<div class="signature">
def self.<strong>connect_timeout=</strong>(connect_timeout : Int32)
<a class="method-permalink" href="#connect_timeout%3D%28connect_timeout%3AInt32%29-class-method">#</a>
</div>
<div class="doc"><p>Connect timeout.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L23" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="do_not_track=(do_not_track:Bool)-class-method">
<div class="signature">
def self.<strong>do_not_track=</strong>(do_not_track : Bool)
<a class="method-permalink" href="#do_not_track%3D%28do_not_track%3ABool%29-class-method">#</a>
</div>
<div class="doc"><p>Should we set the DNT (Do Not Track) header?</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L17" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="do_not_track?:Bool-class-method">
<div class="signature">
def self.<strong>do_not_track?</strong> : Bool
<a class="method-permalink" href="#do_not_track%3F%3ABool-class-method">#</a>
</div>
<div class="doc"><p>Should we set the DNT (Do Not Track) header?</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L13" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="max_redirects:Int32-class-method">
<div class="signature">
def self.<strong>max_redirects</strong> : Int32
<a class="method-permalink" href="#max_redirects%3AInt32-class-method">#</a>
</div>
<div class="doc"><p>Maximum amount of redirects to follow</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L16" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="max_redirects=(max_redirects:Int32)-class-method">
<div class="signature">
def self.<strong>max_redirects=</strong>(max_redirects : Int32)
<a class="method-permalink" href="#max_redirects%3D%28max_redirects%3AInt32%29-class-method">#</a>
</div>
<div class="doc"><p>Maximum amount of redirects to follow</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L20" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="read_timeout:Int32-class-method">
<div class="signature">
def self.<strong>read_timeout</strong> : Int32
<a class="method-permalink" href="#read_timeout%3AInt32-class-method">#</a>
</div>
<div class="doc"><p>Read timeout.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L22" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="read_timeout=(read_timeout:Int32)-class-method">
<div class="signature">
def self.<strong>read_timeout=</strong>(read_timeout : Int32)
<a class="method-permalink" href="#read_timeout%3D%28read_timeout%3AInt32%29-class-method">#</a>
</div>
<div class="doc"><p>Read timeout.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L26" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="robots=(robots:Bool)-class-method">
<div class="signature">
def self.<strong>robots=</strong>(robots : Bool)
<a class="method-permalink" href="#robots%3D%28robots%3ABool%29-class-method">#</a>
</div>
<div class="doc"><p>Specifies whether robots.txt should be honored globally</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L14" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="robots?:Bool-class-method">
<div class="signature">
def self.<strong>robots?</strong> : Bool
<a class="method-permalink" href="#robots%3F%3ABool-class-method">#</a>
</div>
<div class="doc"><p>Specifies whether robots.txt should be honored globally</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L10" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="user_agent:String-class-method">
<div class="signature">
def self.<strong>user_agent</strong> : String
<a class="method-permalink" href="#user_agent%3AString-class-method">#</a>
</div>
<div class="doc"><p>The User-Agent string used by all Agent objects by default.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L25" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="user_agent=(user_agent:String)-class-method">
<div class="signature">
def self.<strong>user_agent=</strong>(user_agent : String)
<a class="method-permalink" href="#user_agent%3D%28user_agent%3AString%29-class-method">#</a>
</div>
<div class="doc"><p>The User-Agent string used by all Agent objects by default.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L29" target="_blank">View source</a>]
</div>
</div>
<h2>Instance Method Detail</h2>
<div class="entry-detail" id="host(name,**options,&amp;block:Agent-&gt;)-instance-method">
<div class="signature">
def <strong>host</strong>(name, **options, &block : <a href="Arachnid/Agent.html">Agent</a> -> )
<a class="method-permalink" href="#host%28name%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-instance-method">#</a>
</div>
<div class="doc"><p>See <code><a href="Arachnid/Agent.html#host%28url%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-class-method">Agent.host</a></code></p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L31" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="site(url,**options,&amp;block:Agent-&gt;)-instance-method">
<div class="signature">
def <strong>site</strong>(url, **options, &block : <a href="Arachnid/Agent.html">Agent</a> -> )
<a class="method-permalink" href="#site%28url%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-instance-method">#</a>
</div>
<div class="doc"><p>See <code><a href="Arachnid/Agent.html#site%28url%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-class-method">Agent.site</a></code></p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L36" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="start_at(url,**options,&amp;block:Agent-&gt;)-instance-method">
<div class="signature">
def <strong>start_at</strong>(url, **options, &block : <a href="Arachnid/Agent.html">Agent</a> -> )
<a class="method-permalink" href="#start_at%28url%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-instance-method">#</a>
</div>
<div class="doc"><p>See <code><a href="Arachnid/Agent.html#start_at%28url%2C%2A%2Aoptions%2C%26block%3AAgent-%3E%29-class-method">Agent.start_at</a></code></p></div>
<br/>
<div>
[<a href="https://github.com/watzon/arachnid/blob/32bf4d89b826d76adc3c6f2cd160bfd2348ace03/src/arachnid/arachnid.cr#L26" target="_blank">View source</a>]
</div>
</div>
</div>
</body>
</html>