]> git.donarmstrong.com Git - biopieces.git/commitdiff
added rdoc stuff
authormartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Sat, 19 Mar 2011 20:40:01 +0000 (20:40 +0000)
committermartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Sat, 19 Mar 2011 20:40:01 +0000 (20:40 +0000)
git-svn-id: http://biopieces.googlecode.com/svn/trunk@1302 74ccb610-7750-0410-82ae-013aeee3265d

69 files changed:
code_ruby/Maasha/lib/doc/Base36.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Base36Error.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Biopieces.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/BitArray.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/BitArrayError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Boulder.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/BoulderError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/CastError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Casts.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Digest.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/DigestError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Fasta.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/FastaError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Fastq.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/FastqError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Filesys.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/FilesysError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Genbank.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/GenbankError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/GenbankFeatures.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Locator.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/LocatorError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/OptionHandler.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Read.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/SFF.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/SFFError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Seq.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/SeqError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Status.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/Stream.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/String.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/StringError.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/base36_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/biopieces_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/bitarray_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/bits_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/boulder_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/digest_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/fasta_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/fastq_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/filesys_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/genbank_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/brick.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/brick_link.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/bug.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/bullet_black.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/bullet_toggle_minus.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/bullet_toggle_plus.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/date.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/find.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/loadingAnimation.gif [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/macFFBgHack.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/package.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/page_green.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/page_white_text.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/page_white_width.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/plugin.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/ruby.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/tag_green.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/wrench.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/wrench_orange.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/images/zoom.png [new file with mode: 0644]
code_ruby/Maasha/lib/doc/js/darkfish.js [new file with mode: 0644]
code_ruby/Maasha/lib/doc/js/jquery.js [new file with mode: 0644]
code_ruby/Maasha/lib/doc/js/quicksearch.js [new file with mode: 0644]
code_ruby/Maasha/lib/doc/js/thickbox-compressed.js [new file with mode: 0644]
code_ruby/Maasha/lib/doc/rdoc.css [new file with mode: 0644]
code_ruby/Maasha/lib/doc/seq_rb.html [new file with mode: 0644]
code_ruby/Maasha/lib/doc/sff_rb.html [new file with mode: 0644]

diff --git a/code_ruby/Maasha/lib/doc/Base36.html b/code_ruby/Maasha/lib/doc/Base36.html
new file mode 100644 (file)
index 0000000..c1078ec
--- /dev/null
@@ -0,0 +1,316 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Base36</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./base36_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="base36.rb">base36.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-decode">::decode</a></li>
+                                       
+                                       <li><a href="#method-c-encode">::encode</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Base36</h1>
+
+               <div id="description">
+                       <p>
+Class containing methods to encode and decode Base 36. Note that the ALPH
+is [alph + num] and not [num + alph] which prevents us from simply using
+.to_i(36) and .to_s(36).
+</p>
+<p>
+<a
+href="http://en.wikipedia.org/wiki/Base_36">en.wikipedia.org/wiki/Base_36</a>
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="decode-method" class="method-detail ">
+                               <a name="method-c-decode"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">decode</span><span
+                                               class="method-args">(base36)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that decodes a base36 string and returns an integer.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="decode-source">
+<pre>
+    <span class="ruby-comment cmt"># File base36.rb, line 55</span>
+55:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">decode</span>(<span class="ruby-identifier">base36</span>)
+56:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">Base36Error</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base36</span>.<span class="ruby-identifier">empty?</span>
+57: 
+58:     <span class="ruby-identifier">result</span> = <span class="ruby-value">0</span>
+59:     <span class="ruby-identifier">pos</span>    = <span class="ruby-value">0</span>
+60: 
+61:     <span class="ruby-identifier">base36</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
+62:       <span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-constant">ALPH</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">char</span>) * (<span class="ruby-constant">BASE36</span> <span class="ruby-operator">**</span> <span class="ruby-identifier">pos</span>)
+63:       <span class="ruby-identifier">pos</span>    <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+64:     <span class="ruby-keyword kw">end</span>
+65: 
+66:     <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>;
+67:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="encode-method" class="method-detail ">
+                               <a name="method-c-encode"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">encode</span><span
+                                               class="method-args">(num)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that encodes an integer into a base36 string that is returned.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="encode-source">
+<pre>
+    <span class="ruby-comment cmt"># File base36.rb, line 39</span>
+39:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode</span>(<span class="ruby-identifier">num</span>)
+40:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">Base36Error</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">num</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Fixnum</span>
+41: 
+42:     <span class="ruby-identifier">base36</span> = <span class="ruby-value str">&quot;&quot;</span>
+43: 
+44:     <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">num</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
+45:       <span class="ruby-identifier">base36</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">ALPH</span>[(<span class="ruby-identifier">num</span> <span class="ruby-operator">%</span> <span class="ruby-constant">BASE36</span>)]
+46:       <span class="ruby-identifier">num</span> <span class="ruby-operator">/=</span> <span class="ruby-constant">BASE36</span>
+47:     <span class="ruby-keyword kw">end</span>
+48: 
+49:     <span class="ruby-identifier">base36</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">ALPH</span>[<span class="ruby-value">0</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">num</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+50: 
+51:     <span class="ruby-identifier">base36</span>.<span class="ruby-identifier">reverse</span>
+52:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Base36Error.html b/code_ruby/Maasha/lib/doc/Base36Error.html
new file mode 100644 (file)
index 0000000..2e2be76
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Base36Error</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./base36_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="base36.rb">base36.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Base36Error</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with <a href="Base36.html">Base36</a>.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Biopieces.html b/code_ruby/Maasha/lib/doc/Biopieces.html
new file mode 100644 (file)
index 0000000..3cacc08
--- /dev/null
@@ -0,0 +1,562 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Biopieces</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-i-each">#each</a></li>
+                                       
+                                       <li><a href="#method-i-each_record">#each_record</a></li>
+                                       
+                                       <li><a href="#method-i-mktmpdir">#mktmpdir</a></li>
+                                       
+                                       <li><a href="#method-i-parse">#parse</a></li>
+                                       
+                                       <li><a href="#method-i-puts">#puts</a></li>
+                                       
+                                       <li><a href="#method-i-to_s">#to_s</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+                       <div id="includes-section" class="section">
+                               <h3 class="section-header">Included Modules</h3>
+                               <ul class="link-list">
+                               
+                               
+                                       <li><span class="include">Enumerable</span></li>
+                               
+                               
+                               </ul>
+                       </div>
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Biopieces</h1>
+
+               <div id="description">
+                       <p>
+<a href="Biopieces.html">Biopieces</a> are command line scripts and uses
+OptionParser to parse command line options according to a list of casts.
+Each cast prescribes the long and short name of the option, the type, if it
+is mandatory, the default value, and allowed and disallowed values. An
+optional list of extra casts can be supplied, and the integrity of the
+casts are checked. Following the command line parsing, the options are
+checked according to the casts. Methods are also included for handling the
+parsing and emitting of Biopiece records, which are ASCII text records
+consisting of lines with a key/value pair separated by a colon and a white
+space &#8217;: &#8217;. Each record is separated by a line with three
+dashes &#8217;&#8212;&#8217;.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+               <div id="attribute-method-details" class="method-section section">
+                       <h3 class="section-header">Attributes</h3>
+
+                       
+                       <div id="out-attribute-method" class="method-detail">
+                               <a name="out"></a>
+                               
+                               <a name="out="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">out</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+               </div>
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(test=nil, input=STDIN, output=STDOUT)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Initialize a Biopiece and write the status to file. Options are for testing
+purposes only.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+    <span class="ruby-comment cmt"># File biopieces.rb, line 49</span>
+49:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">test</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">input</span>=<span class="ruby-constant">STDIN</span>, <span class="ruby-identifier">output</span>=<span class="ruby-constant">STDOUT</span>)
+50:     <span class="ruby-ivar">@test</span>   = <span class="ruby-identifier">test</span>
+51:     <span class="ruby-ivar">@input</span>  = <span class="ruby-identifier">input</span>
+52:     <span class="ruby-ivar">@output</span> = <span class="ruby-identifier">output</span>
+53:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="each-method" class="method-detail method-alias">
+                               <a name="method-i-each"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">each</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                               </div>
+
+                               
+
+                               
+                               <div class="aliases">
+          Alias for: <a href="Biopieces.html#method-i-each_record">each_record</a>
+                               </div>
+                               
+                       </div>
+
+               
+                       <div id="each-record-method" class="method-detail ">
+                               <a name="method-i-each_record"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">each_record</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Open Biopiece input stream if not open and iterate over all Biopiece
+records in the stream.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="each-record-source">
+<pre>
+    <span class="ruby-comment cmt"># File biopieces.rb, line 66</span>
+66:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_record</span>
+67:     <span class="ruby-ivar">@in</span> = <span class="ruby-constant">Stream</span><span class="ruby-operator">::</span><span class="ruby-identifier">open</span>(<span class="ruby-ivar">@options</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;r&quot;</span>, <span class="ruby-ivar">@input</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@in</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">IO</span>
+68:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@in</span>.<span class="ruby-identifier">nil?</span>
+69: 
+70:     <span class="ruby-identifier">record</span> = {}
+71: 
+72:     <span class="ruby-ivar">@in</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
+73:       <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">line</span>
+74:       <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^([^:]+): (.*)$/</span>
+75:         <span class="ruby-identifier">record</span>[<span class="ruby-node">$1</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-node">$2</span>
+76:       <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^---$/</span>
+77:         <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">empty?</span>
+78:         <span class="ruby-identifier">record</span> = {}
+79:       <span class="ruby-keyword kw">else</span>
+80:         <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Bad record format: #{line}&quot;</span>
+81:       <span class="ruby-keyword kw">end</span>
+82:     <span class="ruby-keyword kw">end</span>
+83: 
+84:     <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">empty?</span>
+85: 
+86:     <span class="ruby-keyword kw">self</span> <span class="ruby-comment cmt"># conventionally</span>
+87:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+                               <div class="aliases">
+                                       Also aliased as: <a href="Biopieces.html#method-i-each">each</a>
+                               </div>
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="mktmpdir-method" class="method-detail ">
+                               <a name="method-i-mktmpdir"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">mktmpdir</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Create a temporary directory inside the ENV[&#8220;BP_TMP&#8220;] dir.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="mktmpdir-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 106</span>
+106:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mktmpdir</span>
+107:     <span class="ruby-identifier">time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_i</span>
+108:     <span class="ruby-identifier">user</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;USER&quot;</span>]
+109:     <span class="ruby-identifier">pid</span>  = <span class="ruby-identifier">$$</span>
+110:     <span class="ruby-identifier">path</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_TMP&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/&quot;</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">user</span>, <span class="ruby-identifier">time</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">pid</span>, <span class="ruby-identifier">pid</span>, <span class="ruby-value str">&quot;bp_tmp&quot;</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;_&quot;</span>)
+111:     <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-identifier">path</span>)
+112:     <span class="ruby-constant">Status</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">set_tmpdir</span>(<span class="ruby-identifier">path</span>)
+113:     <span class="ruby-identifier">path</span>
+114:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="parse-method" class="method-detail ">
+                               <a name="method-i-parse"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">parse</span><span
+                                               class="method-args">(argv, cast_list=[], script_path=$0)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check the integrity of a list of casts, followed by parsion options from
+argv and finally checking the options according to the casts. Returns nil
+if argv is empty, otherwise an options hash.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="parse-source">
+<pre>
+    <span class="ruby-comment cmt"># File biopieces.rb, line 58</span>
+58:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">cast_list</span>=[], <span class="ruby-identifier">script_path</span>=<span class="ruby-identifier">$0</span>)
+59:     <span class="ruby-identifier">casts</span>          = <span class="ruby-constant">Casts</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">cast_list</span>)
+60:     <span class="ruby-identifier">option_handler</span> = <span class="ruby-constant">OptionHandler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">casts</span>, <span class="ruby-identifier">script_path</span>, <span class="ruby-ivar">@test</span>)
+61:     <span class="ruby-ivar">@options</span>       = <span class="ruby-identifier">option_handler</span>.<span class="ruby-identifier">options_parse</span>
+62:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="puts-method" class="method-detail ">
+                               <a name="method-i-puts"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">puts</span><span
+                                               class="method-args">(record)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Open Biopiece output stream if not open and puts record to the stream.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="puts-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 92</span>
+ 92:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">puts</span>(<span class="ruby-identifier">record</span>)
+ 93:     <span class="ruby-ivar">@out</span> = <span class="ruby-constant">Stream</span><span class="ruby-operator">::</span><span class="ruby-identifier">open</span>(<span class="ruby-ivar">@options</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>, <span class="ruby-ivar">@output</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@out</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">IO</span>
+ 94: 
+ 95:     <span class="ruby-identifier">record</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>,<span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
+ 96:       <span class="ruby-ivar">@out</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;#{key.to_s}: #{value}\n&quot;</span>
+ 97:     <span class="ruby-keyword kw">end</span>
+ 98: 
+ 99:     <span class="ruby-ivar">@out</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;---\n&quot;</span>
+100:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="to-s-method" class="method-detail ">
+                               <a name="method-i-to_s"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">to_s</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="to-s-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 102</span>
+102:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
+103:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/BitArray.html b/code_ruby/Maasha/lib/doc/BitArray.html
new file mode 100644 (file)
index 0000000..44a12d4
--- /dev/null
@@ -0,0 +1,869 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: BitArray</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./bitarray_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="bitarray.rb">bitarray.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-i-%26">#&</a></li>
+                                       
+                                       <li><a href="#method-i-%5E">#^</a></li>
+                                       
+                                       <li><a href="#method-i-bit_pos">#bit_pos</a></li>
+                                       
+                                       <li><a href="#method-i-bit_set">#bit_set</a></li>
+                                       
+                                       <li><a href="#method-i-bit_set%3F">#bit_set?</a></li>
+                                       
+                                       <li><a href="#method-i-bits_in_char">#bits_in_char</a></li>
+                                       
+                                       <li><a href="#method-i-bits_off">#bits_off</a></li>
+                                       
+                                       <li><a href="#method-i-bits_on">#bits_on</a></li>
+                                       
+                                       <li><a href="#method-i-byte_pos">#byte_pos</a></li>
+                                       
+                                       <li><a href="#method-i-init_byte_array">#init_byte_array</a></li>
+                                       
+                                       <li><a href="#method-i-init_count_array">#init_count_array</a></li>
+                                       
+                                       <li><a href="#method-i-to_s">#to_s</a></li>
+                                       
+                                       <li><a href="#method-i-%7C">#|</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">BitArray</h1>
+
+               <div id="description">
+                       <p>
+Class containing methods for creating and manipulating a bit array.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+               <div id="attribute-method-details" class="method-section section">
+                       <h3 class="section-header">Attributes</h3>
+
+                       
+                       <div id="size-attribute-method" class="method-detail">
+                               <a name="size"></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">size</span><span
+                                               class="attribute-access-type">[R]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="byte-array-attribute-method" class="method-detail">
+                               <a name="byte_array"></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">byte_array</span><span
+                                               class="attribute-access-type">[R]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+               </div>
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(size)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to initialize a new bit array of a given size.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+    <span class="ruby-comment cmt"># File bitarray.rb, line 35</span>
+35:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">size</span>)
+36:     <span class="ruby-ivar">@size</span>        = <span class="ruby-identifier">size</span>
+37:     <span class="ruby-ivar">@byte_array</span>  = <span class="ruby-identifier">init_byte_array</span>
+38:     <span class="ruby-ivar">@count_array</span> = <span class="ruby-identifier">init_count_array</span>
+39:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="--method" class="method-detail ">
+                               <a name="method-i-%26"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">&amp;</span><span
+                                               class="method-args">(ba)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to run bitwise AND (&amp;) on two bit arrays and return the result
+in a new bit array. Bits are copied if they exists in BOTH operands.
+00111100 &amp; 00001101 = 00001100
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="--source">
+<pre>
+    <span class="ruby-comment cmt"># File bitarray.rb, line 76</span>
+76:   <span class="ruby-keyword kw">def</span> &amp;(<span class="ruby-identifier">ba</span>)
+77:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;uneven size of bit arrays: #{self.size} != #{ba.size}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>
+78: 
+79:     <span class="ruby-identifier">result</span> = <span class="ruby-constant">BitArray</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>)
+80: 
+81:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>.<span class="ruby-identifier">size</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">byte</span><span class="ruby-operator">|</span>
+82:       <span class="ruby-identifier">result</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>] = (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span> &amp; <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span>).<span class="ruby-identifier">chr</span>
+83:     <span class="ruby-keyword kw">end</span>
+84: 
+85:     <span class="ruby-identifier">result</span>
+86:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="--method" class="method-detail ">
+                               <a name="method-i-%5E"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">^</span><span
+                                               class="method-args">(ba)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to run bitwise XOR (^) on two bit arrays and return the result in a
+new bit array. Bits are copied if they exists in ONE BUT NOT BOTH operands.
+00111100 ^ 00001101 = 00110001
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="--source">
+<pre>
+     <span class="ruby-comment cmt"># File bitarray.rb, line 106</span>
+106:   <span class="ruby-keyword kw">def</span> <span class="ruby-operator">^</span>(<span class="ruby-identifier">ba</span>)
+107:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;uneven size of bit arrays: #{self.size} != #{ba.size}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>
+108: 
+109:     <span class="ruby-identifier">result</span> = <span class="ruby-constant">BitArray</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>)
+110: 
+111:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>.<span class="ruby-identifier">size</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">byte</span><span class="ruby-operator">|</span>
+112:       <span class="ruby-identifier">result</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>] = (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span> <span class="ruby-operator">^</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span>).<span class="ruby-identifier">chr</span>
+113:     <span class="ruby-keyword kw">end</span>
+114: 
+115:     <span class="ruby-identifier">result</span>
+116:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="bit-set-method" class="method-detail ">
+                               <a name="method-i-bit_set"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">bit_set</span><span
+                                               class="method-args">(pos)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to set a bit to 1 at a given position in the bit array.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="bit-set-source">
+<pre>
+    <span class="ruby-comment cmt"># File bitarray.rb, line 42</span>
+42:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bit_set</span>(<span class="ruby-identifier">pos</span>)
+43:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Position #{pos} must be an integer.&quot;</span>              <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">pos</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Fixnum</span>
+44:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Position #{pos} outside of range: 0 ... #{@size}&quot;</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-ivar">@size</span> ).<span class="ruby-identifier">include?</span> <span class="ruby-identifier">pos</span>
+45: 
+46:     <span class="ruby-ivar">@byte_array</span>[<span class="ruby-identifier">byte_pos</span>(<span class="ruby-identifier">pos</span>)] = (<span class="ruby-ivar">@byte_array</span>[<span class="ruby-identifier">byte_pos</span>(<span class="ruby-identifier">pos</span>)].<span class="ruby-identifier">ord</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">bit_pos</span>(<span class="ruby-identifier">pos</span>)).<span class="ruby-identifier">chr</span>
+47:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="bit-set--method" class="method-detail ">
+                               <a name="method-i-bit_set%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">bit_set?</span><span
+                                               class="method-args">(pos)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to check if a bit at a given position in the bit array is set.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="bit-set--source">
+<pre>
+    <span class="ruby-comment cmt"># File bitarray.rb, line 50</span>
+50:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bit_set?</span>(<span class="ruby-identifier">pos</span>)
+51:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Position #{pos} must be an integer.&quot;</span>              <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">pos</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Fixnum</span>
+52:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Position #{pos} outside of range: 0 ... #{@size}&quot;</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-ivar">@size</span> ).<span class="ruby-identifier">include?</span> <span class="ruby-identifier">pos</span>
+53: 
+54:     (<span class="ruby-ivar">@byte_array</span>[<span class="ruby-identifier">byte_pos</span>(<span class="ruby-identifier">pos</span>)].<span class="ruby-identifier">ord</span> &amp; <span class="ruby-identifier">bit_pos</span>(<span class="ruby-identifier">pos</span>)) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
+55:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="bits-off-method" class="method-detail ">
+                               <a name="method-i-bits_off"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">bits_off</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns the number of bits set &#8220;off&#8221; in a bit
+array.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="bits-off-source">
+<pre>
+    <span class="ruby-comment cmt"># File bitarray.rb, line 69</span>
+69:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bits_off</span>
+70:     <span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">bits_on</span>
+71:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="bits-on-method" class="method-detail ">
+                               <a name="method-i-bits_on"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">bits_on</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns the number of bits set &#8220;on&#8221; in a bit array.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="bits-on-source">
+<pre>
+    <span class="ruby-comment cmt"># File bitarray.rb, line 58</span>
+58:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bits_on</span> 
+59:     <span class="ruby-identifier">bits_on</span> = <span class="ruby-value">0</span>
+60: 
+61:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">byte_array</span>.<span class="ruby-identifier">size</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">byte</span><span class="ruby-operator">|</span>
+62:       <span class="ruby-identifier">bits_on</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@count_array</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span>]
+63:     <span class="ruby-keyword kw">end</span>
+64: 
+65:     <span class="ruby-identifier">bits_on</span>
+66:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="to-s-method" class="method-detail ">
+                               <a name="method-i-to_s"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">to_s</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to convert a bit array to a string.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="to-s-source">
+<pre>
+     <span class="ruby-comment cmt"># File bitarray.rb, line 119</span>
+119:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
+120:     <span class="ruby-identifier">string</span> = <span class="ruby-value str">&quot;&quot;</span>
+121: 
+122:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-ivar">@size</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pos</span><span class="ruby-operator">|</span>
+123:       <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bit_set?</span> <span class="ruby-identifier">pos</span> 
+124:         <span class="ruby-identifier">string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;1&quot;</span>
+125:       <span class="ruby-keyword kw">else</span>
+126:         <span class="ruby-identifier">string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</span>
+127:       <span class="ruby-keyword kw">end</span>
+128:     <span class="ruby-keyword kw">end</span>
+129: 
+130:     <span class="ruby-identifier">string</span>
+131:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="--method" class="method-detail ">
+                               <a name="method-i-%7C"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">|</span><span
+                                               class="method-args">(ba)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to run bitwise OR (|) on two bit arrays and return the result in a
+new bit array. Bits are copied if they exists in EITHER operands. 00111100
+| 00001101 = 00111101
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="--source">
+<pre>
+     <span class="ruby-comment cmt"># File bitarray.rb, line 91</span>
+ 91:   <span class="ruby-keyword kw">def</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">ba</span>)
+ 92:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;uneven size of bit arrays: #{self.size} != #{ba.size}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>
+ 93: 
+ 94:     <span class="ruby-identifier">result</span> = <span class="ruby-constant">BitArray</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>)
+ 95: 
+ 96:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>.<span class="ruby-identifier">size</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">byte</span><span class="ruby-operator">|</span>
+ 97:       <span class="ruby-identifier">result</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>] = (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span>).<span class="ruby-identifier">chr</span>
+ 98:     <span class="ruby-keyword kw">end</span>
+ 99: 
+100:     <span class="ruby-identifier">result</span>
+101:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Private Instance Methods</h3>
+
+               
+                       <div id="bit-pos-method" class="method-detail ">
+                               <a name="method-i-bit_pos"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">bit_pos</span><span
+                                               class="method-args">(pos)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns the bit position in a byte.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="bit-pos-source">
+<pre>
+     <span class="ruby-comment cmt"># File bitarray.rb, line 177</span>
+177:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bit_pos</span>(<span class="ruby-identifier">pos</span>)
+178:     <span class="ruby-value">1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-constant">BitsInChar</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">pos</span> <span class="ruby-operator">%</span> <span class="ruby-constant">BitsInChar</span>))
+179:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="bits-in-char-method" class="method-detail ">
+                               <a name="method-i-bits_in_char"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">bits_in_char</span><span
+                                               class="method-args">(char)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns the number of set bits in a char.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="bits-in-char-source">
+<pre>
+     <span class="ruby-comment cmt"># File bitarray.rb, line 161</span>
+161:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bits_in_char</span>(<span class="ruby-identifier">char</span>)
+162:     <span class="ruby-identifier">bits</span> = <span class="ruby-value">0</span>
+163: 
+164:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-constant">BitsInChar</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pos</span><span class="ruby-operator">|</span>
+165:       <span class="ruby-identifier">bits</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">char</span> &amp; <span class="ruby-identifier">bit_pos</span>(<span class="ruby-identifier">pos</span>)) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>)
+166:     <span class="ruby-keyword kw">end</span>
+167: 
+168:     <span class="ruby-identifier">bits</span>
+169:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="byte-pos-method" class="method-detail ">
+                               <a name="method-i-byte_pos"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">byte_pos</span><span
+                                               class="method-args">(pos)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns the byte position in the byte array for a given bit
+position.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="byte-pos-source">
+<pre>
+     <span class="ruby-comment cmt"># File bitarray.rb, line 172</span>
+172:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">byte_pos</span>(<span class="ruby-identifier">pos</span>)
+173:     <span class="ruby-identifier">pos</span> <span class="ruby-operator">/</span> <span class="ruby-constant">BitsInChar</span>
+174:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="init-byte-array-method" class="method-detail ">
+                               <a name="method-i-init_byte_array"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">init_byte_array</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to initialize the byte array (string) that constitutes the bit
+array.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="init-byte-array-source">
+<pre>
+     <span class="ruby-comment cmt"># File bitarray.rb, line 138</span>
+138:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_byte_array</span>
+139:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Size must be an integer, not #{@size}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@size</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Fixnum</span>
+140:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Size must be positive, not #{@size}&quot;</span>   <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
+141: 
+142:     <span class="ruby-identifier">byte_array</span> = <span class="ruby-value str">&quot;&quot;</span>
+143:     <span class="ruby-identifier">byte_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">0</span>.<span class="ruby-identifier">chr</span> * (((<span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">/</span> <span class="ruby-constant">BitsInChar</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
+144: 
+145:     <span class="ruby-identifier">byte_array</span>
+146:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="init-count-array-method" class="method-detail ">
+                               <a name="method-i-init_count_array"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">init_count_array</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns an array where the element index value is the number of
+bits set for that index value.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="init-count-array-source">
+<pre>
+     <span class="ruby-comment cmt"># File bitarray.rb, line 150</span>
+150:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_count_array</span>
+151:     <span class="ruby-identifier">count_array</span> = []
+152: 
+153:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> (<span class="ruby-value">2</span> <span class="ruby-operator">**</span> <span class="ruby-constant">BitsInChar</span>)).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+154:       <span class="ruby-identifier">count_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">bits_in_char</span>(<span class="ruby-identifier">i</span>)
+155:     <span class="ruby-keyword kw">end</span>
+156: 
+157:     <span class="ruby-identifier">count_array</span>
+158:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/BitArrayError.html b/code_ruby/Maasha/lib/doc/BitArrayError.html
new file mode 100644 (file)
index 0000000..6b352ae
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: BitArrayError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./bitarray_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="bitarray.rb">bitarray.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">BitArrayError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with <a
+href="BitArray.html">BitArray</a>.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Boulder.html b/code_ruby/Maasha/lib/doc/Boulder.html
new file mode 100644 (file)
index 0000000..b1af1ca
--- /dev/null
@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Boulder</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./boulder_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="boulder.rb">boulder.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link"><a href="Filesys.html">Filesys</a></p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-i-each">#each</a></li>
+                                       
+                                       <li><a href="#method-i-to_boulder">#to_boulder</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Boulder</h1>
+
+               <div id="description">
+                       <p>
+Class to manipulate boulder records - Lincoln Steins own YAML like format:
+<a
+href="http://stein.cshl.org/boulder/docs/Boulder.html">stein.cshl.org/boulder/docs/Boulder.html</a>
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(input=STDIN, output=STDOUT)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Initialize a <a href="Boulder.html">Boulder</a> object. Options are for
+testing purposes only.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+    <span class="ruby-comment cmt"># File boulder.rb, line 39</span>
+39:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">input</span>=<span class="ruby-constant">STDIN</span>, <span class="ruby-identifier">output</span>=<span class="ruby-constant">STDOUT</span>)
+40:     <span class="ruby-ivar">@input</span>  = <span class="ruby-identifier">input</span>
+41:     <span class="ruby-ivar">@output</span> = <span class="ruby-identifier">output</span>
+42:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="each-method" class="method-detail ">
+                               <a name="method-i-each"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">each</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="each-source">
+<pre>
+    <span class="ruby-comment cmt"># File boulder.rb, line 44</span>
+44:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
+45:     <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@input</span>.<span class="ruby-identifier">eof?</span> <span class="ruby-keyword kw">do</span>
+46:       <span class="ruby-identifier">block</span> = <span class="ruby-ivar">@input</span>.<span class="ruby-identifier">gets</span>(<span class="ruby-constant">SEP</span>)
+47:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">BoulderError</span>, <span class="ruby-value str">&quot;Missing record seperator&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">block</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/#{SEP}$/</span>
+48: 
+49:       <span class="ruby-identifier">record</span> = {}
+50: 
+51:       <span class="ruby-identifier">block</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-constant">SEP</span>).<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
+52:         <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">chomp</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'='</span>, <span class="ruby-value">2</span>)
+53: 
+54:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">BoulderError</span>, <span class="ruby-value str">&quot;Missing key/value seperator&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">nil?</span>
+55:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">BoulderError</span>, <span class="ruby-value str">&quot;Missing key&quot;</span>                 <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">empty?</span>
+56:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">BoulderError</span>, <span class="ruby-value str">&quot;Missing value&quot;</span>               <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">empty?</span>
+57: 
+58:         <span class="ruby-identifier">record</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">val</span>
+59:       <span class="ruby-keyword kw">end</span>
+60: 
+61:       <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span>
+62:     <span class="ruby-keyword kw">end</span>
+63:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="to-boulder-method" class="method-detail ">
+                               <a name="method-i-to_boulder"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">to_boulder</span><span
+                                               class="method-args">(record)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that converts and returns a hash record as a <a
+href="Boulder.html">Boulder</a> string.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="to-boulder-source">
+<pre>
+    <span class="ruby-comment cmt"># File boulder.rb, line 67</span>
+67:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_boulder</span>(<span class="ruby-identifier">record</span>)
+68:     <span class="ruby-identifier">str</span> = <span class="ruby-value str">&quot;&quot;</span>
+69: 
+70:     <span class="ruby-identifier">record</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
+71:       <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{key}=#{val}\n&quot;</span>
+72:     <span class="ruby-keyword kw">end</span>
+73: 
+74:     <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;=\n&quot;</span>
+75: 
+76:     <span class="ruby-identifier">str</span>
+77:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/BoulderError.html b/code_ruby/Maasha/lib/doc/BoulderError.html
new file mode 100644 (file)
index 0000000..ded84e1
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: BoulderError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./boulder_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="boulder.rb">boulder.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">BoulderError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with <a
+href="Boulder.html">Boulder</a>.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/CastError.html b/code_ruby/Maasha/lib/doc/CastError.html
new file mode 100644 (file)
index 0000000..3689d7c
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: CastError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">CastError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with option casts.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Casts.html b/code_ruby/Maasha/lib/doc/Casts.html
new file mode 100644 (file)
index 0000000..8892aa8
--- /dev/null
@@ -0,0 +1,823 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Casts</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Array</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-i-check">#check</a></li>
+                                       
+                                       <li><a href="#method-i-check_duplicates">#check_duplicates</a></li>
+                                       
+                                       <li><a href="#method-i-check_keys">#check_keys</a></li>
+                                       
+                                       <li><a href="#method-i-check_val_allowed">#check_val_allowed</a></li>
+                                       
+                                       <li><a href="#method-i-check_val_default">#check_val_default</a></li>
+                                       
+                                       <li><a href="#method-i-check_val_disallowed">#check_val_disallowed</a></li>
+                                       
+                                       <li><a href="#method-i-check_val_long">#check_val_long</a></li>
+                                       
+                                       <li><a href="#method-i-check_val_mandatory">#check_val_mandatory</a></li>
+                                       
+                                       <li><a href="#method-i-check_val_short">#check_val_short</a></li>
+                                       
+                                       <li><a href="#method-i-check_val_type">#check_val_type</a></li>
+                                       
+                                       <li><a href="#method-i-check_values">#check_values</a></li>
+                                       
+                                       <li><a href="#method-i-long_to_sym">#long_to_sym</a></li>
+                                       
+                                       <li><a href="#method-i-ubiquitous">#ubiquitous</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Casts</h1>
+
+               <div id="description">
+                       <p>
+Class to handle casts of command line options. Each cast prescribes the
+long and short name of the option, the type, if it is mandatory, the
+default value, and allowed and disallowed values. An optional list of extra
+casts can be supplied, and the integrity of the casts are checked.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+               <div id="constants-list" class="section">
+                       <h3 class="section-header">Constants</h3>
+                       <dl>
+                       
+                               <dt><a name="TYPES">TYPES</a></dt>
+                               
+                               <dd class="description"></dd>
+                               
+                       
+                               <dt><a name="MANDATORY">MANDATORY</a></dt>
+                               
+                               <dd class="description"></dd>
+                               
+                       
+                       </dl>
+               </div>
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(cast_list=[])</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Initialize cast object with an optional options cast list to which
+ubiquitous casts are added after which all casts are checked.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 132</span>
+132:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">cast_list</span>=[])
+133:     <span class="ruby-ivar">@cast_list</span> = <span class="ruby-identifier">cast_list</span>
+134:     <span class="ruby-identifier">ubiquitous</span>
+135:     <span class="ruby-identifier">check</span>
+136:     <span class="ruby-identifier">long_to_sym</span>
+137:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">push</span> *<span class="ruby-ivar">@cast_list</span>
+138:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Private Instance Methods</h3>
+
+               
+                       <div id="check-method" class="method-detail ">
+                               <a name="method-i-check"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check integrity of the casts.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 151</span>
+151:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
+152:     <span class="ruby-identifier">check_keys</span>
+153:     <span class="ruby-identifier">check_values</span>
+154:     <span class="ruby-identifier">check_duplicates</span>
+155:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-duplicates-method" class="method-detail ">
+                               <a name="method-i-check_duplicates"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_duplicates</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check cast for duplicate long or short options names.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-duplicates-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 237</span>
+237:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_duplicates</span>
+238:     <span class="ruby-identifier">check_hash</span> = {}
+239:     <span class="ruby-ivar">@cast_list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
+240:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Duplicate argument: '--#{cast[:long]}'&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">check_hash</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+241:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Duplicate argument: '-#{cast[:short]}'&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">check_hash</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:short</span>]
+242:       <span class="ruby-identifier">check_hash</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]]  = <span class="ruby-keyword kw">true</span>
+243:       <span class="ruby-identifier">check_hash</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:short</span>]] = <span class="ruby-keyword kw">true</span>
+244:     <span class="ruby-keyword kw">end</span>
+245:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-keys-method" class="method-detail ">
+                               <a name="method-i-check_keys"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_keys</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if all mandatory keys are present in casts and raise if not.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-keys-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 158</span>
+158:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_keys</span>
+159:     <span class="ruby-ivar">@cast_list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
+160:       <span class="ruby-constant">MANDATORY</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mandatory</span><span class="ruby-operator">|</span>
+161:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Missing symbol in cast: '#{mandatory.to_sym}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">mandatory</span>.<span class="ruby-identifier">to_sym</span>
+162:       <span class="ruby-keyword kw">end</span>
+163:     <span class="ruby-keyword kw">end</span>
+164:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-val-allowed-method" class="method-detail ">
+                               <a name="method-i-check_val_allowed"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_val_allowed</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if values to allowed are legal and raise if not.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-val-allowed-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 223</span>
+223:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_allowed</span>(<span class="ruby-identifier">cast</span>)
+224:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:allowed</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:allowed</span>].<span class="ruby-identifier">nil?</span>
+225:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of allowed: '#{cast[:allowed]}'&quot;</span>
+226:     <span class="ruby-keyword kw">end</span>
+227:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-val-default-method" class="method-detail ">
+                               <a name="method-i-check_val_default"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_val_default</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if values to default are legal and raise if not.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-val-default-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 213</span>
+213:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_default</span>(<span class="ruby-identifier">cast</span>)
+214:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>].<span class="ruby-identifier">nil?</span>          <span class="ruby-keyword kw">or</span>
+215:            <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>  <span class="ruby-keyword kw">or</span>
+216:            <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Integer</span> <span class="ruby-keyword kw">or</span>
+217:            <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Float</span>
+218:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of default: '#{cast[:default]}'&quot;</span>
+219:     <span class="ruby-keyword kw">end</span>
+220:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-val-disallowed-method" class="method-detail ">
+                               <a name="method-i-check_val_disallowed"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_val_disallowed</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if values to disallowed are legal and raise if not.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-val-disallowed-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 230</span>
+230:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_disallowed</span>(<span class="ruby-identifier">cast</span>)
+231:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:disallowed</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:disallowed</span>].<span class="ruby-identifier">nil?</span>
+232:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of disallowed: '#{cast[:disallowed]}'&quot;</span>
+233:     <span class="ruby-keyword kw">end</span>
+234:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-val-long-method" class="method-detail ">
+                               <a name="method-i-check_val_long"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_val_long</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if the values to long are legal and raise if not.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-val-long-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 180</span>
+180:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_long</span>(<span class="ruby-identifier">cast</span>)
+181:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
+182:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of long: '#{cast[:long]}'&quot;</span>
+183:     <span class="ruby-keyword kw">end</span>
+184:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-val-mandatory-method" class="method-detail ">
+                               <a name="method-i-check_val_mandatory"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_val_mandatory</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if values to mandatory are legal and raise if not.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-val-mandatory-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 206</span>
+206:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_mandatory</span>(<span class="ruby-identifier">cast</span>)
+207:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:mandatory</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:mandatory</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">false</span>
+208:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of mandatory: '#{cast[:mandatory]}'&quot;</span>
+209:     <span class="ruby-keyword kw">end</span>
+210:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-val-short-method" class="method-detail ">
+                               <a name="method-i-check_val_short"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_val_short</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if the values to short are legal and raise if not.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-val-short-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 187</span>
+187:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_short</span>(<span class="ruby-identifier">cast</span>)
+188:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:short</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:short</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
+189:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of short: '#{cast[:short]}'&quot;</span>
+190:     <span class="ruby-keyword kw">end</span>
+191:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-val-type-method" class="method-detail ">
+                               <a name="method-i-check_val_type"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_val_type</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if values to type are legal and raise if not.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-val-type-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 194</span>
+194:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_type</span>(<span class="ruby-identifier">cast</span>)
+195:     <span class="ruby-identifier">type_hash</span> = {}
+196:     <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span><span class="ruby-operator">|</span>
+197:       <span class="ruby-identifier">type_hash</span>[<span class="ruby-identifier">type</span>] = <span class="ruby-keyword kw">true</span>
+198:     <span class="ruby-keyword kw">end</span>
+199: 
+200:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">type_hash</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>]
+201:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of type: '#{cast[:type]}'&quot;</span>
+202:     <span class="ruby-keyword kw">end</span>
+203:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-values-method" class="method-detail ">
+                               <a name="method-i-check_values"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_values</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if all values in casts are valid.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-values-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 167</span>
+167:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_values</span>
+168:     <span class="ruby-ivar">@cast_list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
+169:       <span class="ruby-identifier">check_val_long</span>(<span class="ruby-identifier">cast</span>)
+170:       <span class="ruby-identifier">check_val_short</span>(<span class="ruby-identifier">cast</span>)
+171:       <span class="ruby-identifier">check_val_type</span>(<span class="ruby-identifier">cast</span>)
+172:       <span class="ruby-identifier">check_val_mandatory</span>(<span class="ruby-identifier">cast</span>)
+173:       <span class="ruby-identifier">check_val_default</span>(<span class="ruby-identifier">cast</span>)
+174:       <span class="ruby-identifier">check_val_allowed</span>(<span class="ruby-identifier">cast</span>)
+175:       <span class="ruby-identifier">check_val_disallowed</span>(<span class="ruby-identifier">cast</span>)
+176:     <span class="ruby-keyword kw">end</span>
+177:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="long-to-sym-method" class="method-detail ">
+                               <a name="method-i-long_to_sym"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">long_to_sym</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Convert values to :long keys to symbols for all casts.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="long-to-sym-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 248</span>
+248:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">long_to_sym</span>
+249:     <span class="ruby-ivar">@cast_list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
+250:       <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>] = <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>].<span class="ruby-identifier">to_sym</span>
+251:     <span class="ruby-keyword kw">end</span>
+252:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="ubiquitous-method" class="method-detail ">
+                               <a name="method-i-ubiquitous"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">ubiquitous</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Add ubiquitous options casts.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="ubiquitous-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 143</span>
+143:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ubiquitous</span>
+144:     <span class="ruby-ivar">@cast_list</span> <span class="ruby-operator">&lt;&lt;</span> {<span class="ruby-value">:long=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'help'</span>,       <span class="ruby-value">:short=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'?'</span>, <span class="ruby-value">:type=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'flag'</span>,   <span class="ruby-value">:mandatory=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>, <span class="ruby-value">:default=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:allowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:disallowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>}
+145:     <span class="ruby-ivar">@cast_list</span> <span class="ruby-operator">&lt;&lt;</span> {<span class="ruby-value">:long=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'stream_in'</span>,  <span class="ruby-value">:short=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'I'</span>, <span class="ruby-value">:type=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'files!'</span>, <span class="ruby-value">:mandatory=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>, <span class="ruby-value">:default=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:allowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:disallowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>}
+146:     <span class="ruby-ivar">@cast_list</span> <span class="ruby-operator">&lt;&lt;</span> {<span class="ruby-value">:long=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'stream_out'</span>, <span class="ruby-value">:short=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'O'</span>, <span class="ruby-value">:type=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'file'</span>,   <span class="ruby-value">:mandatory=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>, <span class="ruby-value">:default=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:allowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:disallowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>}
+147:     <span class="ruby-ivar">@cast_list</span> <span class="ruby-operator">&lt;&lt;</span> {<span class="ruby-value">:long=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'verbose'</span>,    <span class="ruby-value">:short=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'v'</span>, <span class="ruby-value">:type=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'flag'</span>,   <span class="ruby-value">:mandatory=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>, <span class="ruby-value">:default=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:allowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:disallowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>}
+148:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Digest.html b/code_ruby/Maasha/lib/doc/Digest.html
new file mode 100644 (file)
index 0000000..b25354f
--- /dev/null
@@ -0,0 +1,416 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Digest</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./digest_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="digest.rb">digest.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-i-disambiguate">#disambiguate</a></li>
+                                       
+                                       <li><a href="#method-i-each">#each</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+                       <div id="includes-section" class="section">
+                               <h3 class="section-header">Included Modules</h3>
+                               <ul class="link-list">
+                               
+                               
+                                       <li><span class="include">Enumerable</span></li>
+                               
+                               
+                               </ul>
+                       </div>
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Digest</h1>
+
+               <div id="description">
+                       
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(seq, pattern, cut_pos)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Initialize a digest object with the following arguments:
+</p>
+<ul>
+<li><p>
+seq: A sequence object.
+</p>
+</li>
+<li><p>
+pattern: A restriction enzyme recognition pattern.
+</p>
+</li>
+<li><p>
+cut_pos: Offset from match position where the enzyme cuts.
+</p>
+</li>
+</ul>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+    <span class="ruby-comment cmt"># File digest.rb, line 37</span>
+37:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">seq</span>, <span class="ruby-identifier">pattern</span>, <span class="ruby-identifier">cut_pos</span>)
+38:     <span class="ruby-ivar">@seq</span>     = <span class="ruby-identifier">seq</span>
+39:     <span class="ruby-ivar">@pattern</span> = <span class="ruby-identifier">disambiguate</span>(<span class="ruby-identifier">pattern</span>)
+40:     <span class="ruby-ivar">@cut_pos</span> = <span class="ruby-identifier">cut_pos</span>
+41:     <span class="ruby-ivar">@offset</span>  = <span class="ruby-value">0</span>
+42:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="each-method" class="method-detail ">
+                               <a name="method-i-each"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">each</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to get the next digestion product from a sequence.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="each-source">
+<pre>
+    <span class="ruby-comment cmt"># File digest.rb, line 45</span>
+45:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
+46:     <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">scan</span> <span class="ruby-ivar">@pattern</span> <span class="ruby-keyword kw">do</span>
+47:       <span class="ruby-identifier">pos</span> = <span class="ruby-node">$`</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@cut_pos</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+48:      
+49:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>
+50:         <span class="ruby-identifier">seq</span> = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{@seq.seq_name}[#{@offset}-#{pos}]&quot;</span>, <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-ivar">@offset</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">pos</span>], <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">type</span>)
+51: 
+52:         <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">seq</span>
+53:       <span class="ruby-keyword kw">end</span>
+54: 
+55:       <span class="ruby-ivar">@offset</span> = <span class="ruby-identifier">pos</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
+56:     <span class="ruby-keyword kw">end</span>
+57: 
+58:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@offset</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
+59:       <span class="ruby-ivar">@offset</span> = <span class="ruby-value">0</span>
+60:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@offset</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">length</span>
+61:       <span class="ruby-ivar">@offset</span> = <span class="ruby-value">0</span>
+62:     <span class="ruby-keyword kw">end</span>
+63: 
+64:     <span class="ruby-identifier">seq</span> = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{@seq.seq_name}[#{@offset}-#{@seq.length - 1}]&quot;</span>, <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-ivar">@offset</span> <span class="ruby-operator">..</span> <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">length</span>], <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">type</span>)
+65: 
+66:     <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">seq</span>
+67: 
+68:     <span class="ruby-keyword kw">self</span> <span class="ruby-comment cmt"># conventionally</span>
+69:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Private Instance Methods</h3>
+
+               
+                       <div id="disambiguate-method" class="method-detail ">
+                               <a name="method-i-disambiguate"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">disambiguate</span><span
+                                               class="method-args">(pattern)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns a regexp object with a restriction enzyme pattern with
+ambiguity codes substituted to the appropriate regexp.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="disambiguate-source">
+<pre>
+     <span class="ruby-comment cmt"># File digest.rb, line 76</span>
+ 76:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disambiguate</span>(<span class="ruby-identifier">pattern</span>)
+ 77:     <span class="ruby-identifier">ambiguity</span> = {
+ 78:       <span class="ruby-value str">'A'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;A&quot;</span>,
+ 79:       <span class="ruby-value str">'T'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;T&quot;</span>,
+ 80:       <span class="ruby-value str">'U'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;T&quot;</span>,
+ 81:       <span class="ruby-value str">'C'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;C&quot;</span>,
+ 82:       <span class="ruby-value str">'G'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;G&quot;</span>,
+ 83:       <span class="ruby-value str">'M'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[AC]&quot;</span>,
+ 84:       <span class="ruby-value str">'R'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[AG]&quot;</span>,
+ 85:       <span class="ruby-value str">'W'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[AT]&quot;</span>,
+ 86:       <span class="ruby-value str">'S'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[CG]&quot;</span>,
+ 87:       <span class="ruby-value str">'Y'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[CT]&quot;</span>,
+ 88:       <span class="ruby-value str">'K'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[GT]&quot;</span>,
+ 89:       <span class="ruby-value str">'V'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[ACG]&quot;</span>,
+ 90:       <span class="ruby-value str">'H'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[ACT]&quot;</span>,
+ 91:       <span class="ruby-value str">'D'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[AGT]&quot;</span>,
+ 92:       <span class="ruby-value str">'B'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[CGT]&quot;</span>,
+ 93:       <span class="ruby-value str">'N'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[GATC]&quot;</span>
+ 94:     }
+ 95: 
+ 96:     <span class="ruby-identifier">new_pattern</span> = <span class="ruby-value str">&quot;&quot;</span>
+ 97: 
+ 98:     <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
+ 99:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ambiguity</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">char</span>
+100:         <span class="ruby-identifier">new_pattern</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">ambiguity</span>[<span class="ruby-identifier">char</span>]
+101:       <span class="ruby-keyword kw">else</span>
+102:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">DigestError</span>, <span class="ruby-node">&quot;Could not disambiguate residue: #{char}&quot;</span>
+103:       <span class="ruby-keyword kw">end</span>
+104:     <span class="ruby-keyword kw">end</span>
+105: 
+106:     <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">new_pattern</span>)
+107:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/DigestError.html b/code_ruby/Maasha/lib/doc/DigestError.html
new file mode 100644 (file)
index 0000000..6176583
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: DigestError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./digest_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="digest.rb">digest.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">DigestError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with <a href="Digest.html">Digest</a>.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Fasta.html b/code_ruby/Maasha/lib/doc/Fasta.html
new file mode 100644 (file)
index 0000000..65ce1bb
--- /dev/null
@@ -0,0 +1,308 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Fasta</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./fasta_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="fasta.rb">fasta.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link"><a href="Filesys.html">Filesys</a></p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-i-get_entry">#get_entry</a></li>
+                                       
+                                       <li><a href="#method-i-puts">#puts</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Fasta</h1>
+
+               <div id="description">
+                       
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="get-entry-method" class="method-detail ">
+                               <a name="method-i-get_entry"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">get_entry</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to get the next FASTA entry form an ios and return this as a <a
+href="Seq.html">Seq</a> object. If no entry is found or eof then nil is
+returned.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="get-entry-source">
+<pre>
+    <span class="ruby-comment cmt"># File fasta.rb, line 34</span>
+34:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_entry</span>
+35:     <span class="ruby-identifier">block</span> = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>(<span class="ruby-identifier">$/</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>)
+36:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">nil?</span>
+37: 
+38:     <span class="ruby-identifier">block</span>.<span class="ruby-identifier">chomp!</span>(<span class="ruby-identifier">$/</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>)
+39: 
+40:     (<span class="ruby-identifier">seq_name</span>, <span class="ruby-identifier">seq</span>) = <span class="ruby-identifier">block</span>.<span class="ruby-identifier">split</span>(<span class="ruby-identifier">$/</span>, <span class="ruby-value">2</span>)
+41: 
+42:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">FastaError</span>, <span class="ruby-value str">&quot;Bad FASTA format&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
+43: 
+44:     <span class="ruby-identifier">entry</span>          = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>
+45:     <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">type</span>     = <span class="ruby-ivar">@type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@type</span>.<span class="ruby-identifier">downcase</span>
+46:     <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq</span>      = <span class="ruby-identifier">seq</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\s/</span>, <span class="ruby-value str">''</span>)
+47:     <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq_name</span> = <span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp re">/^&gt;/</span>, <span class="ruby-value str">''</span>).<span class="ruby-identifier">rstrip</span>
+48: 
+49:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">FastaError</span>, <span class="ruby-value str">&quot;Bad FASTA format&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">empty?</span>
+50:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">FastaError</span>, <span class="ruby-value str">&quot;Bad FASTA format&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">empty?</span>
+51: 
+52:     <span class="ruby-identifier">entry</span>
+53:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="puts-method" class="method-detail ">
+                               <a name="method-i-puts"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">puts</span><span
+                                               class="method-args">(record)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+TODO - this should be some custom to_s method instead.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="puts-source">
+<pre>
+    <span class="ruby-comment cmt"># File fasta.rb, line 56</span>
+56:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">puts</span>(<span class="ruby-identifier">record</span>)
+57:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-value">:SEQ_NAME</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-value">:SEQ</span>
+58:       <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;&gt;#{record[:SEQ_NAME]}\n&quot;</span>
+59:       <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;#{record[:SEQ]}\n&quot;</span>
+60:     <span class="ruby-keyword kw">end</span>
+61:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/FastaError.html b/code_ruby/Maasha/lib/doc/FastaError.html
new file mode 100644 (file)
index 0000000..a5ec5a1
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: FastaError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./fasta_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="fasta.rb">fasta.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">FastaError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with FASTA.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Fastq.html b/code_ruby/Maasha/lib/doc/Fastq.html
new file mode 100644 (file)
index 0000000..5152dcf
--- /dev/null
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Fastq</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./fastq_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="fastq.rb">fastq.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link"><a href="Filesys.html">Filesys</a></p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-i-get_entry">#get_entry</a></li>
+                                       
+                                       <li><a href="#method-i-puts">#puts</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Fastq</h1>
+
+               <div id="description">
+                       
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="get-entry-method" class="method-detail ">
+                               <a name="method-i-get_entry"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">get_entry</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to get the next FASTQ entry form an ios and return this as a <a
+href="Seq.html">Seq</a> object. If no entry is found or eof then nil is
+returned.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="get-entry-source">
+<pre>
+    <span class="ruby-comment cmt"># File fastq.rb, line 34</span>
+34:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_entry</span>
+35:     <span class="ruby-keyword kw">begin</span>
+36:       <span class="ruby-identifier">seq_name</span>       = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">chomp!</span>
+37:       <span class="ruby-identifier">seq</span>            = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">chomp!</span>
+38:       <span class="ruby-identifier">qual_name</span>      = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">chomp!</span>
+39:       <span class="ruby-identifier">qual</span>           = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">chomp!</span>
+40: 
+41:       <span class="ruby-identifier">entry</span>          = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>
+42:       <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">type</span>     = <span class="ruby-ivar">@type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@type</span>.<span class="ruby-identifier">downcase</span>
+43:       <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq</span>      = <span class="ruby-identifier">seq</span>
+44:       <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq_name</span> = <span class="ruby-identifier">seq_name</span>[<span class="ruby-value">1</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">length</span>]
+45:       <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">qual</span>     = <span class="ruby-identifier">qual</span>
+46: 
+47:       <span class="ruby-identifier">entry</span>
+48:     <span class="ruby-keyword kw">rescue</span>
+49:       <span class="ruby-keyword kw">nil</span>
+50:     <span class="ruby-keyword kw">end</span>
+51:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="puts-method" class="method-detail ">
+                               <a name="method-i-puts"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">puts</span><span
+                                               class="method-args">(record)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+TODO - this should be some custom to_s method instead.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="puts-source">
+<pre>
+    <span class="ruby-comment cmt"># File fastq.rb, line 54</span>
+54:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">puts</span>(<span class="ruby-identifier">record</span>)
+55:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-value">:SEQ_NAME</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-value">:SEQ</span>
+56:       <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;&gt;#{record[:SEQ_NAME]}\n&quot;</span>
+57:       <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;#{record[:SEQ]}\n&quot;</span>
+58:     <span class="ruby-keyword kw">end</span>
+59:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/FastqError.html b/code_ruby/Maasha/lib/doc/FastqError.html
new file mode 100644 (file)
index 0000000..0ec36b4
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: FastqError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./fastq_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="fastq.rb">fastq.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">FastqError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with FASTQ.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Filesys.html b/code_ruby/Maasha/lib/doc/Filesys.html
new file mode 100644 (file)
index 0000000..4c874ae
--- /dev/null
@@ -0,0 +1,452 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Filesys</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./filesys_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="filesys.rb">filesys.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-c-open">::open</a></li>
+                                       
+                                       <li><a href="#method-c-zopen">::zopen</a></li>
+                                       
+                                       <li><a href="#method-i-close">#close</a></li>
+                                       
+                                       <li><a href="#method-i-each">#each</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+                       <div id="includes-section" class="section">
+                               <h3 class="section-header">Included Modules</h3>
+                               <ul class="link-list">
+                               
+                               
+                                       <li><span class="include">Enumerable</span></li>
+                               
+                               
+                               </ul>
+                       </div>
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Filesys</h1>
+
+               <div id="description">
+                       
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(io, type=nil)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+    <span class="ruby-comment cmt"># File filesys.rb, line 58</span>
+58:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">io</span>, <span class="ruby-identifier">type</span>=<span class="ruby-keyword kw">nil</span>)
+59:     <span class="ruby-ivar">@io</span>   = <span class="ruby-identifier">io</span>
+60:     <span class="ruby-ivar">@type</span> = <span class="ruby-identifier">type</span>
+61:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="open-method" class="method-detail ">
+                               <a name="method-c-open"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">open</span><span
+                                               class="method-args">(*args)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Class method allowing open to be used on (zipped) files. See File.open.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="open-source">
+<pre>
+    <span class="ruby-comment cmt"># File filesys.rb, line 35</span>
+35:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(*<span class="ruby-identifier">args</span>)
+36:     <span class="ruby-identifier">args</span> = *<span class="ruby-identifier">args</span>
+37:     <span class="ruby-identifier">file</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>
+38: 
+39:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;-&quot;</span>
+40:       <span class="ruby-identifier">ios</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">STDIN</span>)
+41:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">pipe?</span> <span class="ruby-identifier">file</span>
+42:       <span class="ruby-identifier">ios</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(*<span class="ruby-identifier">args</span>))
+43:     <span class="ruby-keyword kw">else</span>
+44:       <span class="ruby-identifier">ios</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zopen</span>(*<span class="ruby-identifier">args</span>)
+45:     <span class="ruby-keyword kw">end</span>
+46: 
+47:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
+48:       <span class="ruby-keyword kw">begin</span>
+49:         <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">ios</span>
+50:       <span class="ruby-keyword kw">ensure</span>
+51:         <span class="ruby-identifier">ios</span>.<span class="ruby-identifier">close</span>
+52:       <span class="ruby-keyword kw">end</span>
+53:     <span class="ruby-keyword kw">else</span>
+54:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">ios</span>
+55:     <span class="ruby-keyword kw">end</span>
+56:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-class-method-details" class="method-section section">
+                       <h3 class="section-header">Private Class Methods</h3>
+
+               
+                       <div id="zopen-method" class="method-detail ">
+                               <a name="method-c-zopen"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">zopen</span><span
+                                               class="method-args">(*args)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Helper method to return an ios to a file that may be zipped in which case
+the ios is unzipped on the fly. See File.open.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="zopen-source">
+<pre>
+    <span class="ruby-comment cmt"># File filesys.rb, line 79</span>
+79:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zopen</span>(*<span class="ruby-identifier">args</span>)
+80:     <span class="ruby-identifier">ios</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(*<span class="ruby-identifier">args</span>)
+81: 
+82:     <span class="ruby-keyword kw">begin</span>
+83:       <span class="ruby-identifier">ios</span> = <span class="ruby-constant">Zlib</span><span class="ruby-operator">::</span><span class="ruby-constant">GzipReader</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ios</span>)
+84:     <span class="ruby-keyword kw">rescue</span>
+85:       <span class="ruby-identifier">ios</span>.<span class="ruby-identifier">rewind</span>
+86:     <span class="ruby-keyword kw">end</span>
+87: 
+88:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ios</span>)
+89:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="close-method" class="method-detail ">
+                               <a name="method-i-close"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">close</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to close ios.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="close-source">
+<pre>
+    <span class="ruby-comment cmt"># File filesys.rb, line 64</span>
+64:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
+65:     <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">close</span>
+66:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="each-method" class="method-detail ">
+                               <a name="method-i-each"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">each</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Iterator method for parsing entries.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="each-source">
+<pre>
+    <span class="ruby-comment cmt"># File filesys.rb, line 69</span>
+69:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
+70:     <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">get_entry</span> <span class="ruby-keyword kw">do</span>
+71:       <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">entry</span>
+72:     <span class="ruby-keyword kw">end</span>
+73:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/FilesysError.html b/code_ruby/Maasha/lib/doc/FilesysError.html
new file mode 100644 (file)
index 0000000..3a6624d
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: FilesysError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./filesys_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="filesys.rb">filesys.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">FilesysError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with <a
+href="Filesys.html">Filesys</a>.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Genbank.html b/code_ruby/Maasha/lib/doc/Genbank.html
new file mode 100644 (file)
index 0000000..ed25065
--- /dev/null
@@ -0,0 +1,521 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Genbank</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./genbank_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="genbank.rb">genbank.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link"><a href="Filesys.html">Filesys</a></p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-i-each">#each</a></li>
+                                       
+                                       <li><a href="#method-i-get_entry">#get_entry</a></li>
+                                       
+                                       <li><a href="#method-i-get_keys">#get_keys</a></li>
+                                       
+                                       <li><a href="#method-i-get_seq">#get_seq</a></li>
+                                       
+                                       <li><a href="#method-i-want_key%3F">#want_key?</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Genbank</h1>
+
+               <div id="description">
+                       
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(io)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+    <span class="ruby-comment cmt"># File genbank.rb, line 32</span>
+32:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">io</span>)
+33:     <span class="ruby-ivar">@io</span>      = <span class="ruby-identifier">io</span>
+34:     <span class="ruby-ivar">@entry</span>   = []
+35:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="each-method" class="method-detail ">
+                               <a name="method-i-each"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">each</span><span
+                                               class="method-args">(hash_keys, hash_feats, hash_quals)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Iterator method for parsing <a href="Genbank.html">Genbank</a> entries.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="each-source">
+<pre>
+    <span class="ruby-comment cmt"># File genbank.rb, line 38</span>
+38:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>(<span class="ruby-identifier">hash_keys</span>, <span class="ruby-identifier">hash_feats</span>, <span class="ruby-identifier">hash_quals</span>)
+39:     <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span> = <span class="ruby-identifier">get_entry</span> <span class="ruby-keyword kw">do</span>
+40:       <span class="ruby-identifier">keys</span> = <span class="ruby-identifier">get_keys</span>(<span class="ruby-identifier">hash_keys</span>)
+41:       <span class="ruby-identifier">seq</span>  = <span class="ruby-identifier">get_seq</span>
+42: 
+43:       <span class="ruby-identifier">features</span> = <span class="ruby-constant">GenbankFeatures</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@entry</span>, <span class="ruby-identifier">hash_feats</span>, <span class="ruby-identifier">hash_quals</span>)
+44: 
+45:       <span class="ruby-identifier">features</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record</span><span class="ruby-operator">|</span>
+46:         <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>,<span class="ruby-identifier">val</span><span class="ruby-operator">|</span> <span class="ruby-identifier">record</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">val</span> }
+47: 
+48:                                 <span class="ruby-identifier">loc</span> = <span class="ruby-constant">Locator</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">record</span>[<span class="ruby-value">:LOCATOR</span>], <span class="ruby-identifier">seq</span>)
+49:                                 <span class="ruby-identifier">record</span>[<span class="ruby-value">:SEQ</span>]     = <span class="ruby-identifier">loc</span>.<span class="ruby-identifier">subseq</span>.<span class="ruby-identifier">seq</span>
+50:         <span class="ruby-identifier">record</span>[<span class="ruby-value">:SEQ_LEN</span>] = <span class="ruby-identifier">loc</span>.<span class="ruby-identifier">subseq</span>.<span class="ruby-identifier">length</span>
+51:                                 <span class="ruby-identifier">record</span>[<span class="ruby-value">:STRAND</span>]  = <span class="ruby-identifier">loc</span>.<span class="ruby-identifier">strand</span>
+52:                                 <span class="ruby-identifier">record</span>[<span class="ruby-value">:S_BEG</span>]   = <span class="ruby-identifier">loc</span>.<span class="ruby-identifier">s_beg</span>
+53:                                 <span class="ruby-identifier">record</span>[<span class="ruby-value">:S_END</span>]   = <span class="ruby-identifier">loc</span>.<span class="ruby-identifier">s_end</span>
+54: 
+55:         <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span>
+56:       <span class="ruby-keyword kw">end</span>
+57:     <span class="ruby-keyword kw">end</span>
+58:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Private Instance Methods</h3>
+
+               
+                       <div id="get-entry-method" class="method-detail ">
+                               <a name="method-i-get_entry"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">get_entry</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to get the next <a href="Genbank.html">Genbank</a> entry form an ios
+and return this.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="get-entry-source">
+<pre>
+    <span class="ruby-comment cmt"># File genbank.rb, line 63</span>
+63:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_entry</span>
+64:     <span class="ruby-identifier">block</span> = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>(<span class="ruby-value str">&quot;//&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$/</span>)
+65:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">nil?</span>
+66: 
+67:     <span class="ruby-identifier">block</span>.<span class="ruby-identifier">chomp!</span>(<span class="ruby-value str">&quot;//&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$/</span> )
+68: 
+69:     <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">block</span>.<span class="ruby-identifier">split</span> <span class="ruby-identifier">$/</span>
+70: 
+71:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">empty?</span>
+72: 
+73:     <span class="ruby-identifier">entry</span>
+74:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="get-keys-method" class="method-detail ">
+                               <a name="method-i-get_keys"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">get_keys</span><span
+                                               class="method-args">(hash_keys)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to get the base keys from <a href="Genbank.html">Genbank</a> entry
+and return these in a hash.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="get-keys-source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 93</span>
+ 93:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_keys</span>(<span class="ruby-identifier">hash_keys</span>)
+ 94:     <span class="ruby-identifier">keys</span> = {}
+ 95:     <span class="ruby-identifier">i</span>    = <span class="ruby-value">0</span>
+ 96:     <span class="ruby-identifier">j</span>    = <span class="ruby-value">0</span>
+ 97: 
+ 98:     <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">i</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^FEATURES/</span>
+ 99:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\s{0,3}([A-Z]{2})/</span>
+100:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">want_key?</span>(<span class="ruby-identifier">hash_keys</span>, <span class="ruby-node">$1</span>)
+101:           <span class="ruby-identifier">j</span> = <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
+102: 
+103:           <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span> = <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">lstrip</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value">2</span>)
+104: 
+105:           <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^\s{0,3}[A-Z]/</span>
+106:             <span class="ruby-identifier">val</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span>].<span class="ruby-identifier">lstrip</span>
+107:             <span class="ruby-identifier">j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+108:           <span class="ruby-keyword kw">end</span>
+109: 
+110:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_sym</span>]
+111:             <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_sym</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;;&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">val</span>
+112:           <span class="ruby-keyword kw">else</span>
+113:             <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">val</span>
+114:           <span class="ruby-keyword kw">end</span>
+115:         <span class="ruby-keyword kw">end</span>
+116:       <span class="ruby-keyword kw">end</span>
+117: 
+118:       <span class="ruby-identifier">j</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">i</span> = <span class="ruby-identifier">j</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+119:     <span class="ruby-keyword kw">end</span>
+120: 
+121:     <span class="ruby-identifier">keys</span>
+122:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="get-seq-method" class="method-detail ">
+                               <a name="method-i-get_seq"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">get_seq</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to get the DNA sequence from a <a href="Genbank.html">Genbank</a>
+entry and return this as a <a href="Seq.html">Seq</a> object.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="get-seq-source">
+<pre>
+    <span class="ruby-comment cmt"># File genbank.rb, line 78</span>
+78:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_seq</span>
+79:     <span class="ruby-identifier">i</span> = <span class="ruby-ivar">@entry</span>.<span class="ruby-identifier">size</span>
+80:     <span class="ruby-identifier">j</span> = <span class="ruby-identifier">i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+81: 
+82:     <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^[A-Z]/</span>
+83:       <span class="ruby-identifier">j</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
+84:     <span class="ruby-keyword kw">end</span>
+85: 
+86:     <span class="ruby-identifier">seq</span> = <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">i</span>].<span class="ruby-identifier">join</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">&quot; 0123456789&quot;</span>)
+87: 
+88:     <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">seq</span>, <span class="ruby-value str">&quot;dna&quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">seq</span>
+89:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="want-key--method" class="method-detail ">
+                               <a name="method-i-want_key%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">want_key?</span><span
+                                               class="method-args">(hash_keys, key)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="want-key--source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 124</span>
+124:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">want_key?</span>(<span class="ruby-identifier">hash_keys</span>, <span class="ruby-identifier">key</span>)
+125:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_keys</span>
+126:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_keys</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_sym</span>]
+127:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
+128:       <span class="ruby-keyword kw">else</span>
+129:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
+130:       <span class="ruby-keyword kw">end</span>
+131:     <span class="ruby-keyword kw">else</span>
+132:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
+133:     <span class="ruby-keyword kw">end</span>
+134:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/GenbankError.html b/code_ruby/Maasha/lib/doc/GenbankError.html
new file mode 100644 (file)
index 0000000..5c0f160
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: GenbankError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./genbank_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="genbank.rb">genbank.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">GenbankError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with <a
+href="Genbank.html">Genbank</a>.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/GenbankFeatures.html b/code_ruby/Maasha/lib/doc/GenbankFeatures.html
new file mode 100644 (file)
index 0000000..ac47161
--- /dev/null
@@ -0,0 +1,473 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: GenbankFeatures</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./genbank_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="genbank.rb">genbank.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-i-each">#each</a></li>
+                                       
+                                       <li><a href="#method-i-get_quals">#get_quals</a></li>
+                                       
+                                       <li><a href="#method-i-want_feat%3F">#want_feat?</a></li>
+                                       
+                                       <li><a href="#method-i-want_qual%3F">#want_qual?</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">GenbankFeatures</h1>
+
+               <div id="description">
+                       
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(entry, hash_feats, hash_quals)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 141</span>
+141:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">entry</span>, <span class="ruby-identifier">hash_feats</span>, <span class="ruby-identifier">hash_quals</span>)
+142:     <span class="ruby-ivar">@entry</span>      = <span class="ruby-identifier">entry</span>
+143:     <span class="ruby-ivar">@hash_feats</span> = <span class="ruby-identifier">hash_feats</span>
+144:     <span class="ruby-ivar">@hash_quals</span> = <span class="ruby-identifier">hash_quals</span>
+145:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="each-method" class="method-detail ">
+                               <a name="method-i-each"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">each</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="each-source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 147</span>
+147:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
+148:     <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@i</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@i</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^ORIGIN/</span>
+149:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@i</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\s{5}([A-Za-z_-]+)/</span>
+150:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">want_feat?</span> <span class="ruby-node">$1</span>
+151:           <span class="ruby-identifier">record</span> = {}
+152: 
+153:           <span class="ruby-identifier">feat</span>, <span class="ruby-identifier">loc</span> = <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@i</span>].<span class="ruby-identifier">lstrip</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value">2</span>)
+154: 
+155:           <span class="ruby-identifier">@@j</span> = <span class="ruby-identifier">@@i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
+156: 
+157:           <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^(\s{21}\/|\s{5}[A-Za-z_-]|[A-Z])/</span>
+158:             <span class="ruby-identifier">loc</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>].<span class="ruby-identifier">lstrip</span>
+159:             <span class="ruby-identifier">@@j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+160:           <span class="ruby-keyword kw">end</span>
+161: 
+162:           <span class="ruby-identifier">get_quals</span>.<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
+163:             <span class="ruby-identifier">record</span>[<span class="ruby-identifier">k</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">v</span>
+164:           }
+165: 
+166:           <span class="ruby-identifier">record</span>[<span class="ruby-value">:FEATURE</span>] = <span class="ruby-identifier">feat</span>
+167:           <span class="ruby-identifier">record</span>[<span class="ruby-value">:LOCATOR</span>] = <span class="ruby-identifier">loc</span>
+168: 
+169:           <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span>
+170:         <span class="ruby-keyword kw">end</span>
+171:       <span class="ruby-keyword kw">end</span>
+172: 
+173:       <span class="ruby-identifier">@@j</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">@@i</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">@@i</span> = <span class="ruby-identifier">@@j</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">@@i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+174:     <span class="ruby-keyword kw">end</span>
+175:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Private Instance Methods</h3>
+
+               
+                       <div id="get-quals-method" class="method-detail ">
+                               <a name="method-i-get_quals"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">get_quals</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="get-quals-source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 179</span>
+179:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_quals</span>
+180:     <span class="ruby-identifier">quals</span> = {}
+181:     <span class="ruby-identifier">k</span>     = <span class="ruby-value">0</span>
+182: 
+183:     <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^\s{5}[A-Za-z_-]|^[A-Z]/</span>
+184:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\s{21}\/([^=]+)=&quot;([^&quot;]+)/</span>
+185:         <span class="ruby-identifier">qual</span> = <span class="ruby-node">$1</span>
+186:         <span class="ruby-identifier">val</span>  = <span class="ruby-node">$2</span>
+187: 
+188:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">want_qual?</span> <span class="ruby-identifier">qual</span>
+189:           <span class="ruby-identifier">k</span> = <span class="ruby-identifier">@@j</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
+190: 
+191:           <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">k</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^(\s{21}\/|\s{5}[A-Za-z_-]|[A-Z])/</span>
+192:             <span class="ruby-identifier">val</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">lstrip</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'&quot;'</span>)
+193:             <span class="ruby-identifier">k</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+194:           <span class="ruby-keyword kw">end</span>
+195: 
+196:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">quals</span>[<span class="ruby-identifier">qual</span>]
+197:             <span class="ruby-identifier">quals</span>[<span class="ruby-identifier">qual</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;;&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">val</span>
+198:           <span class="ruby-keyword kw">else</span>
+199:             <span class="ruby-identifier">quals</span>[<span class="ruby-identifier">qual</span>] = <span class="ruby-identifier">val</span>
+200:           <span class="ruby-keyword kw">end</span>
+201:         <span class="ruby-keyword kw">end</span>
+202:       <span class="ruby-keyword kw">end</span>
+203: 
+204:       <span class="ruby-identifier">k</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">@@j</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">@@j</span> = <span class="ruby-identifier">k</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">@@j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+205:     <span class="ruby-keyword kw">end</span>
+206: 
+207:     <span class="ruby-identifier">quals</span>
+208:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="want-feat--method" class="method-detail ">
+                               <a name="method-i-want_feat%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">want_feat?</span><span
+                                               class="method-args">(feat)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="want-feat--source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 210</span>
+210:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">want_feat?</span>(<span class="ruby-identifier">feat</span>)
+211:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@hash_feats</span>
+212:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@hash_feats</span>[<span class="ruby-identifier">feat</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">to_sym</span>]
+213:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
+214:       <span class="ruby-keyword kw">else</span>
+215:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
+216:       <span class="ruby-keyword kw">end</span>
+217:     <span class="ruby-keyword kw">else</span>
+218:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
+219:     <span class="ruby-keyword kw">end</span>
+220:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="want-qual--method" class="method-detail ">
+                               <a name="method-i-want_qual%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">want_qual?</span><span
+                                               class="method-args">(qual)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="want-qual--source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 222</span>
+222:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">want_qual?</span>(<span class="ruby-identifier">qual</span>)
+223:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@hash_quals</span>
+224:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@hash_quals</span>[<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">to_sym</span>]
+225:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
+226:       <span class="ruby-keyword kw">else</span>
+227:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
+228:       <span class="ruby-keyword kw">end</span>
+229:     <span class="ruby-keyword kw">else</span>
+230:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
+231:     <span class="ruby-keyword kw">end</span>
+232:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Locator.html b/code_ruby/Maasha/lib/doc/Locator.html
new file mode 100644 (file)
index 0000000..95dadba
--- /dev/null
@@ -0,0 +1,586 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Locator</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./genbank_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="genbank.rb">genbank.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-i-balance_parens%3F">#balance_parens?</a></li>
+                                       
+                                       <li><a href="#method-i-parse_locator">#parse_locator</a></li>
+                                       
+                                       <li><a href="#method-i-s_beg">#s_beg</a></li>
+                                       
+                                       <li><a href="#method-i-s_end">#s_end</a></li>
+                                       
+                                       <li><a href="#method-i-strand">#strand</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Locator</h1>
+
+               <div id="description">
+                       
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+               <div id="attribute-method-details" class="method-section section">
+                       <h3 class="section-header">Attributes</h3>
+
+                       
+                       <div id="locator-attribute-method" class="method-detail">
+                               <a name="locator"></a>
+                               
+                               <a name="locator="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">locator</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="seq-attribute-method" class="method-detail">
+                               <a name="seq"></a>
+                               
+                               <a name="seq="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">seq</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="subseq-attribute-method" class="method-detail">
+                               <a name="subseq"></a>
+                               
+                               <a name="subseq="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">subseq</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+               </div>
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(locator, seq)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 242</span>
+242:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">seq</span>)
+243:     <span class="ruby-ivar">@locator</span> = <span class="ruby-identifier">locator</span>
+244:     <span class="ruby-ivar">@seq</span>     = <span class="ruby-identifier">seq</span>
+245:     <span class="ruby-ivar">@subseq</span>  = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-value str">&quot;dna&quot;</span>)
+246:     <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>)
+247:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="s-beg-method" class="method-detail ">
+                               <a name="method-i-s_beg"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">s_beg</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="s-beg-source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 257</span>
+257:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">s_beg</span>
+258:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@locator</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/(\d+)/</span>
+259:       <span class="ruby-keyword kw">return</span> <span class="ruby-node">$1</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+260:     <span class="ruby-keyword kw">end</span>
+261:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="s-end-method" class="method-detail ">
+                               <a name="method-i-s_end"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">s_end</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="s-end-source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 263</span>
+263:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">s_end</span>
+264:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@locator</span>.<span class="ruby-identifier">reverse</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/(\d+)/</span>
+265:       <span class="ruby-keyword kw">return</span> <span class="ruby-node">$1</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+266:     <span class="ruby-keyword kw">end</span>
+267:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="strand-method" class="method-detail ">
+                               <a name="method-i-strand"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">strand</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="strand-source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 249</span>
+249:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">strand</span>
+250:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@locator</span>.<span class="ruby-identifier">match</span>(<span class="ruby-value str">&quot;complement&quot;</span>)
+251:       <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;-&quot;</span>
+252:     <span class="ruby-keyword kw">else</span>
+253:       <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;+&quot;</span>
+254:     <span class="ruby-keyword kw">end</span>
+255:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Private Instance Methods</h3>
+
+               
+                       <div id="balance-parens--method" class="method-detail ">
+                               <a name="method-i-balance_parens%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">balance_parens?</span><span
+                                               class="method-args">(locator)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="balance-parens--source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 342</span>
+342:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">balance_parens?</span>(<span class="ruby-identifier">locator</span>)
+343:     <span class="ruby-identifier">parens</span> = <span class="ruby-value">0</span>
+344: 
+345:     <span class="ruby-identifier">locator</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
+346:       <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">char</span>
+347:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'('</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">parens</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+348:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">')'</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">parens</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
+349:       <span class="ruby-keyword kw">end</span>
+350:     <span class="ruby-keyword kw">end</span>
+351: 
+352:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parens</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+353:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
+354:     <span class="ruby-keyword kw">else</span>
+355:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
+356:     <span class="ruby-keyword kw">end</span>
+357:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="parse-locator-method" class="method-detail ">
+                               <a name="method-i-parse_locator"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">parse_locator</span><span
+                                               class="method-args">(locator, join = nil, comp = nil, order = nil)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that uses recursion to parse a locator string from a feature table
+and fetches the appropriate subsequence. the operators join(),
+complement(), and order() are handled. the locator string is broken into a
+comma separated lists, and modified if the parens donnot balance. otherwise
+the comma separated list of ranges are stripped from operators, and the
+subsequence are fetched and handled according to the operators. SNP
+locators are also dealt with (single positions).
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="parse-locator-source">
+<pre>
+     <span class="ruby-comment cmt"># File genbank.rb, line 279</span>
+279:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">join</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">comp</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">order</span> = <span class="ruby-keyword kw">nil</span>)
+280:     <span class="ruby-identifier">intervals</span> = <span class="ruby-identifier">locator</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;,&quot;</span>)
+281: 
+282:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">balance_parens?</span>(<span class="ruby-identifier">intervals</span>.<span class="ruby-identifier">first</span>)   <span class="ruby-comment cmt"># locator includes a join/comp/order of several ranges</span>
+283:       <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">locator</span>
+284:       <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^join\((.*)\)$/</span>
+285:         <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
+286:         <span class="ruby-identifier">join</span>     = <span class="ruby-keyword kw">true</span>
+287:       <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^complement\((.*)\)$/</span>
+288:         <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
+289:         <span class="ruby-identifier">comp</span>     = <span class="ruby-keyword kw">true</span>
+290:       <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^order\((.*)\)$/</span>
+291:         <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
+292:         <span class="ruby-identifier">order</span>    = <span class="ruby-keyword kw">true</span>
+293:       <span class="ruby-keyword kw">end</span>
+294: 
+295:       <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">join</span>, <span class="ruby-identifier">comp</span>, <span class="ruby-identifier">order</span>)
+296:     <span class="ruby-keyword kw">else</span>
+297:       <span class="ruby-identifier">intervals</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">interval</span><span class="ruby-operator">|</span>
+298:         <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">interval</span>
+299:         <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^join\((.*)\)$/</span>
+300:           <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
+301:           <span class="ruby-identifier">join</span>    = <span class="ruby-keyword kw">true</span>
+302:           <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">join</span>, <span class="ruby-identifier">comp</span>, <span class="ruby-identifier">order</span>)
+303:         <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^complement\((.*)\)$/</span>
+304:           <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
+305:           <span class="ruby-identifier">comp</span>    = <span class="ruby-keyword kw">true</span>
+306:           <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">join</span>, <span class="ruby-identifier">comp</span>, <span class="ruby-identifier">order</span>)
+307:         <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^order\((.*)\)$/</span>
+308:           <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
+309:           <span class="ruby-identifier">order</span>   = <span class="ruby-keyword kw">true</span>
+310:           <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">join</span>, <span class="ruby-identifier">comp</span>, <span class="ruby-identifier">order</span>)
+311:         <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^[&lt;&gt;]?(\d+)[^\d]+(\d+)$/</span>
+312:           <span class="ruby-identifier">int_beg</span> = <span class="ruby-node">$1</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+313:           <span class="ruby-identifier">int_end</span> = <span class="ruby-node">$2</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+314: 
+315:           <span class="ruby-identifier">newseq</span> = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">int_beg</span><span class="ruby-operator">...</span><span class="ruby-identifier">int_end</span>], <span class="ruby-value str">&quot;dna&quot;</span>)
+316: 
+317:                                         <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
+318:                                                 <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">revcomp</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">comp</span>
+319: 
+320:                                                 <span class="ruby-ivar">@subseq</span>.<span class="ruby-identifier">seq</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">order</span> <span class="ruby-operator">?</span> <span class="ruby-value str">&quot; &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span>)
+321:                                         <span class="ruby-keyword kw">end</span>
+322:         <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^(\d+)$/</span>
+323:           <span class="ruby-identifier">pos</span> = <span class="ruby-node">$1</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+324: 
+325:           <span class="ruby-identifier">newseq</span> = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">pos</span>], <span class="ruby-value str">&quot;dna&quot;</span>)
+326: 
+327:                                         <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
+328:                 <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">revcomp</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">comp</span> 
+329: 
+330:                 <span class="ruby-ivar">@subseq</span>.<span class="ruby-identifier">seq</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">order</span> <span class="ruby-operator">?</span> <span class="ruby-value str">&quot; &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span>)
+331:                                         <span class="ruby-keyword kw">end</span>
+332:         <span class="ruby-keyword kw">else</span>
+333:           <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;WARNING: Could not match locator -&gt; #{locator}&quot;</span>;
+334:           <span class="ruby-ivar">@subseq</span>.<span class="ruby-identifier">seq</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&quot;</span>
+335:         <span class="ruby-keyword kw">end</span>
+336:       <span class="ruby-keyword kw">end</span>
+337:     <span class="ruby-keyword kw">end</span>
+338: 
+339:     <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@subseq</span>
+340:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/LocatorError.html b/code_ruby/Maasha/lib/doc/LocatorError.html
new file mode 100644 (file)
index 0000000..6cf4391
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: LocatorError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./genbank_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="genbank.rb">genbank.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">LocatorError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with Genbank/EMBL/DDBJ feature table
+locators.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/OptionHandler.html b/code_ruby/Maasha/lib/doc/OptionHandler.html
new file mode 100644 (file)
index 0000000..d9bc163
--- /dev/null
@@ -0,0 +1,1028 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: OptionHandler</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-i-options_check">#options_check</a></li>
+                                       
+                                       <li><a href="#method-i-options_check_allowed">#options_check_allowed</a></li>
+                                       
+                                       <li><a href="#method-i-options_check_dir">#options_check_dir</a></li>
+                                       
+                                       <li><a href="#method-i-options_check_disallowed">#options_check_disallowed</a></li>
+                                       
+                                       <li><a href="#method-i-options_check_file">#options_check_file</a></li>
+                                       
+                                       <li><a href="#method-i-options_check_files">#options_check_files</a></li>
+                                       
+                                       <li><a href="#method-i-options_check_int">#options_check_int</a></li>
+                                       
+                                       <li><a href="#method-i-options_check_mandatory">#options_check_mandatory</a></li>
+                                       
+                                       <li><a href="#method-i-options_check_uint">#options_check_uint</a></li>
+                                       
+                                       <li><a href="#method-i-options_default">#options_default</a></li>
+                                       
+                                       <li><a href="#method-i-options_glob">#options_glob</a></li>
+                                       
+                                       <li><a href="#method-i-options_parse">#options_parse</a></li>
+                                       
+                                       <li><a href="#method-i-print_usage_and_exit">#print_usage_and_exit</a></li>
+                                       
+                                       <li><a href="#method-i-print_usage_full%3F">#print_usage_full?</a></li>
+                                       
+                                       <li><a href="#method-i-print_usage_short%3F">#print_usage_short?</a></li>
+                                       
+                                       <li><a href="#method-i-wiki_path">#wiki_path</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">OptionHandler</h1>
+
+               <div id="description">
+                       <p>
+Class for parsing argv using OptionParser according to given casts. Default
+options are set, file glob expressions expanded, and options are checked
+according to the casts. Usage information is printed and exit called if
+required.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+               <div id="constants-list" class="section">
+                       <h3 class="section-header">Constants</h3>
+                       <dl>
+                       
+                               <dt><a name="REGEX_LIST">REGEX_LIST</a></dt>
+                               
+                               <dd class="description"></dd>
+                               
+                       
+                               <dt><a name="REGEX_INT">REGEX_INT</a></dt>
+                               
+                               <dd class="description"></dd>
+                               
+                       
+                               <dt><a name="REGEX_STRING">REGEX_STRING</a></dt>
+                               
+                               <dd class="description"></dd>
+                               
+                       
+                       </dl>
+               </div>
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(argv, casts, script_path, test=nil)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 266</span>
+266:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">casts</span>, <span class="ruby-identifier">script_path</span>, <span class="ruby-identifier">test</span>=<span class="ruby-keyword kw">nil</span>)
+267:     <span class="ruby-ivar">@argv</span>        = <span class="ruby-identifier">argv</span>
+268:     <span class="ruby-ivar">@casts</span>       = <span class="ruby-identifier">casts</span>
+269:     <span class="ruby-ivar">@script_path</span> = <span class="ruby-identifier">script_path</span>
+270:     <span class="ruby-ivar">@test</span>        = <span class="ruby-identifier">test</span>
+271:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="options-check-method" class="method-detail ">
+                               <a name="method-i-options_check"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_check</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check all options according to casts.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-check-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 407</span>
+407:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check</span>
+408:     <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
+409:       <span class="ruby-identifier">options_check_mandatory</span>(<span class="ruby-identifier">cast</span>)
+410:       <span class="ruby-identifier">options_check_int</span>(<span class="ruby-identifier">cast</span>)
+411:       <span class="ruby-identifier">options_check_uint</span>(<span class="ruby-identifier">cast</span>)
+412:       <span class="ruby-identifier">options_check_file</span>(<span class="ruby-identifier">cast</span>)
+413:       <span class="ruby-identifier">options_check_files</span>(<span class="ruby-identifier">cast</span>)
+414:       <span class="ruby-identifier">options_check_dir</span>(<span class="ruby-identifier">cast</span>)
+415:       <span class="ruby-identifier">options_check_allowed</span>(<span class="ruby-identifier">cast</span>)
+416:       <span class="ruby-identifier">options_check_disallowed</span>(<span class="ruby-identifier">cast</span>)
+417:     <span class="ruby-keyword kw">end</span>
+418:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-check-allowed-method" class="method-detail ">
+                               <a name="method-i-options_check_allowed"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_check_allowed</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check options and raise unless allowed.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-check-allowed-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 470</span>
+470:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_allowed</span>(<span class="ruby-identifier">cast</span>)
+471:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:allowed</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+472:       <span class="ruby-identifier">allowed_hash</span> = {}
+473:       <span class="ruby-identifier">cast</span>[<span class="ruby-value">:allowed</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">','</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">allowed_hash</span>[<span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-value">1</span> }
+474:   
+475:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument '#{@options[cast[:long]]}' to --#{cast[:long]} not allowed&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">allowed_hash</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">to_s</span>
+476:     <span class="ruby-keyword kw">end</span>
+477:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-check-dir-method" class="method-detail ">
+                               <a name="method-i-options_check_dir"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_check_dir</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check dir! type argument and raise if directory don&#8217;t exist.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-check-dir-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 463</span>
+463:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_dir</span>(<span class="ruby-identifier">cast</span>)
+464:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'dir!'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+465:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;No such directory: '#{@options[cast[:long]]}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]]
+466:     <span class="ruby-keyword kw">end</span>
+467:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-check-disallowed-method" class="method-detail ">
+                               <a name="method-i-options_check_disallowed"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_check_disallowed</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check disallowed argument values and raise if disallowed.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-check-disallowed-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 480</span>
+480:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_disallowed</span>(<span class="ruby-identifier">cast</span>)
+481:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:disallowed</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+482:       <span class="ruby-identifier">cast</span>[<span class="ruby-value">:disallowed</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">','</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
+483:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument '#{@options[cast[:long]]}' to --#{cast[:long]} is disallowed&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">to_s</span>
+484:       <span class="ruby-keyword kw">end</span>
+485:     <span class="ruby-keyword kw">end</span>
+486:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-check-file-method" class="method-detail ">
+                               <a name="method-i-options_check_file"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_check_file</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check file! type argument and raise if file don&#8217;t exists.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-check-file-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 446</span>
+446:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_file</span>(<span class="ruby-identifier">cast</span>)
+447:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'file!'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+448:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;No such file: '#{@options[cast[:long]]}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]]
+449:     <span class="ruby-keyword kw">end</span>
+450:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-check-files-method" class="method-detail ">
+                               <a name="method-i-options_check_files"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_check_files</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check files! type argument and raise if files don&#8217;t exists.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-check-files-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 453</span>
+453:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_files</span>(<span class="ruby-identifier">cast</span>)
+454:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'files!'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+455:       <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
+456:         <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;-&quot;</span>
+457:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;File not readable: '#{path}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">readable?</span> <span class="ruby-identifier">path</span>
+458:       <span class="ruby-keyword kw">end</span>
+459:     <span class="ruby-keyword kw">end</span>
+460:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-check-int-method" class="method-detail ">
+                               <a name="method-i-options_check_int"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_check_int</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check int type option and raise if not an integer.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-check-int-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 428</span>
+428:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_int</span>(<span class="ruby-identifier">cast</span>)
+429:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'int'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+430:       <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Integer</span>
+431:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument to --#{cast[:long]} must be an integer, not '#{@options[cast[:long]]}'&quot;</span>
+432:       <span class="ruby-keyword kw">end</span>
+433:     <span class="ruby-keyword kw">end</span>
+434:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-check-mandatory-method" class="method-detail ">
+                               <a name="method-i-options_check_mandatory"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_check_mandatory</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if a mandatory option is set and raise if it isn&#8217;t.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-check-mandatory-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 421</span>
+421:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_mandatory</span>(<span class="ruby-identifier">cast</span>)
+422:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:mandatory</span>]
+423:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Mandatory argument: --#{cast[:long]}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+424:     <span class="ruby-keyword kw">end</span>
+425:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-check-uint-method" class="method-detail ">
+                               <a name="method-i-options_check_uint"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_check_uint</span><span
+                                               class="method-args">(cast)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check uint type option and raise if not an unsinged integer.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-check-uint-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 437</span>
+437:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_uint</span>(<span class="ruby-identifier">cast</span>)
+438:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'uint'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+439:       <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Integer</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
+440:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument to --#{cast[:long]} must be an unsigned integer, not '#{@options[cast[:long]]}'&quot;</span>
+441:       <span class="ruby-keyword kw">end</span>
+442:     <span class="ruby-keyword kw">end</span>
+443:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-default-method" class="method-detail ">
+                               <a name="method-i-options_default"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_default</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Set default options value from cast unless a value is set.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-default-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 374</span>
+374:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_default</span>
+375:     <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
+376:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>]
+377:         <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+378:       <span class="ruby-keyword kw">end</span>
+379:     <span class="ruby-keyword kw">end</span>
+380:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-glob-method" class="method-detail ">
+                               <a name="method-i-options_glob"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_glob</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Expands glob expressions to a full list of paths. Examples:
+&#8220;*.fna&#8221; or &#8220;foo.fna,*.fna&#8221; or
+&#8220;foo.fna,/bar/*.fna&#8220;
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-glob-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 384</span>
+384:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_glob</span>
+385:     <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
+386:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'files'</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'files!'</span>
+387:         <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
+388:           <span class="ruby-identifier">files</span> = []
+389:         
+390:           <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
+391:             <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">&quot;*&quot;</span>
+392:               <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
+393:                 <span class="ruby-identifier">files</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">file</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-identifier">file</span>
+394:               <span class="ruby-keyword kw">end</span>
+395:             <span class="ruby-keyword kw">else</span>
+396:               <span class="ruby-identifier">files</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">path</span>
+397:             <span class="ruby-keyword kw">end</span>
+398:           <span class="ruby-keyword kw">end</span>
+399: 
+400:           <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">files</span>
+401:         <span class="ruby-keyword kw">end</span>
+402:       <span class="ruby-keyword kw">end</span>
+403:     <span class="ruby-keyword kw">end</span>
+404:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="options-parse-method" class="method-detail ">
+                               <a name="method-i-options_parse"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">options_parse</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Parse options from argv using OptionParser and casts denoting long and
+short option names. Usage information is printed and exit called. A hash
+with options is returned.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="options-parse-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 276</span>
+276:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_parse</span>
+277:     <span class="ruby-ivar">@options</span> = {}
+278: 
+279:     <span class="ruby-identifier">option_parser</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">option</span><span class="ruby-operator">|</span>
+280:       <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
+281:         <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>]
+282:         <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'flag'</span>
+283:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]}&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
+284:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">o</span>
+285:           <span class="ruby-keyword kw">end</span>
+286:         <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'float'</span>
+287:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} F&quot;</span>, <span class="ruby-constant">Float</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
+288:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">f</span>
+289:           <span class="ruby-keyword kw">end</span>
+290:         <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'string'</span>
+291:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} S&quot;</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
+292:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">to_sym</span>
+293:           <span class="ruby-keyword kw">end</span>
+294:         <span class="ruby-keyword kw">when</span> <span class="ruby-constant">REGEX_LIST</span>
+295:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>( <span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} A&quot;</span>, <span class="ruby-constant">Array</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span>
+296:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">a</span>
+297:           <span class="ruby-keyword kw">end</span>
+298:         <span class="ruby-keyword kw">when</span> <span class="ruby-constant">REGEX_INT</span>
+299:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} I&quot;</span>, <span class="ruby-constant">Integer</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+300:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">i</span>
+301:           <span class="ruby-keyword kw">end</span>
+302:         <span class="ruby-keyword kw">when</span> <span class="ruby-constant">REGEX_STRING</span>
+303:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} S&quot;</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
+304:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">s</span>
+305:           <span class="ruby-keyword kw">end</span>
+306:         <span class="ruby-keyword kw">else</span>
+307:           <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Unknown option type: '#{cast[:type]}'&quot;</span>
+308:         <span class="ruby-keyword kw">end</span>
+309:       <span class="ruby-keyword kw">end</span>
+310:     <span class="ruby-keyword kw">end</span>
+311: 
+312:     <span class="ruby-identifier">option_parser</span>.<span class="ruby-identifier">parse!</span>(<span class="ruby-ivar">@argv</span>)
+313: 
+314:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">print_usage_full?</span>
+315:       <span class="ruby-identifier">print_usage_and_exit</span>(<span class="ruby-keyword kw">true</span>)
+316:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">print_usage_short?</span>
+317:       <span class="ruby-identifier">print_usage_and_exit</span>
+318:     <span class="ruby-keyword kw">end</span>
+319: 
+320:     <span class="ruby-identifier">options_default</span>
+321:     <span class="ruby-identifier">options_glob</span>
+322:     <span class="ruby-identifier">options_check</span>
+323: 
+324:     <span class="ruby-ivar">@options</span>
+325:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="print-usage-and-exit-method" class="method-detail ">
+                               <a name="method-i-print_usage_and_exit"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">print_usage_and_exit</span><span
+                                               class="method-args">(full=nil)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Print usage info by Calling an external script &#8216;print_wiki&#8217;
+using a system() call and exit. An optional &#8216;full&#8217; flag outputs
+the full usage info.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="print-usage-and-exit-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 357</span>
+357:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print_usage_and_exit</span>(<span class="ruby-identifier">full</span>=<span class="ruby-keyword kw">nil</span>)
+358:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@test</span>
+359:       <span class="ruby-keyword kw">return</span>
+360:     <span class="ruby-keyword kw">else</span>
+361:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">full</span>
+362:         <span class="ruby-identifier">system</span>(<span class="ruby-node">&quot;print_wiki --data_in #{wiki_path} --help&quot;</span>)
+363:       <span class="ruby-keyword kw">else</span>
+364:         <span class="ruby-identifier">system</span>(<span class="ruby-node">&quot;print_wiki --data_in #{wiki_path}&quot;</span>)
+365:       <span class="ruby-keyword kw">end</span>
+366: 
+367:       <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Failed printing wiki: #{wiki_path}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">$?</span>.<span class="ruby-identifier">success?</span>
+368: 
+369:       <span class="ruby-identifier">exit</span>
+370:     <span class="ruby-keyword kw">end</span>
+371:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="print-usage-full--method" class="method-detail ">
+                               <a name="method-i-print_usage_full%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">print_usage_full?</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if full &#8220;usage info&#8221; should be printed.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="print-usage-full--source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 335</span>
+335:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print_usage_full?</span>
+336:     <span class="ruby-ivar">@options</span>[<span class="ruby-value">:help</span>]
+337:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="print-usage-short--method" class="method-detail ">
+                               <a name="method-i-print_usage_short%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">print_usage_short?</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Check if short &#8220;usage info&#8221; should be printed.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="print-usage-short--source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 340</span>
+340:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print_usage_short?</span>
+341:     <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">$stdin</span>.<span class="ruby-identifier">tty?</span>
+342:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
+343:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:stream_in</span>]
+344:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
+345:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:data_in</span>]
+346:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
+347:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">wiki_path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^(list_biopieces|list_genomes|list_mysql_databases|biostat)$/</span>  <span class="ruby-comment cmt"># TODO get rid of this!</span>
+348:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
+349:     <span class="ruby-keyword kw">else</span>
+350:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
+351:     <span class="ruby-keyword kw">end</span>
+352:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="wiki-path-method" class="method-detail ">
+                               <a name="method-i-wiki_path"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">wiki_path</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Given the script name determine the path of the wiki file with the usage
+info.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="wiki-path-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 328</span>
+328:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wiki_path</span>
+329:     <span class="ruby-identifier">path</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_DIR&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/bp_usage/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-ivar">@script_path</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;.wiki&quot;</span>
+330:     <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;No such wiki file: #{path}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-identifier">path</span>
+331:     <span class="ruby-identifier">path</span>
+332:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Read.html b/code_ruby/Maasha/lib/doc/Read.html
new file mode 100644 (file)
index 0000000..32cd91e
--- /dev/null
@@ -0,0 +1,646 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Read</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./sff_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="sff.rb">sff.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-i-clip">#clip</a></li>
+                                       
+                                       <li><a href="#method-i-coordinates_get">#coordinates_get</a></li>
+                                       
+                                       <li><a href="#method-i-mask">#mask</a></li>
+                                       
+                                       <li><a href="#method-i-to_bp">#to_bp</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Read</h1>
+
+               <div id="description">
+                       <p>
+Class containing data accessor methods for an <a href="SFF.html">SFF</a>
+entry and methods for manipulating this entry.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+               <div id="attribute-method-details" class="method-section section">
+                       <h3 class="section-header">Attributes</h3>
+
+                       
+                       <div id="read-header-length-attribute-method" class="method-detail">
+                               <a name="read_header_length"></a>
+                               
+                               <a name="read_header_length="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">read_header_length</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="name-length-attribute-method" class="method-detail">
+                               <a name="name_length"></a>
+                               
+                               <a name="name_length="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">name_length</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="number-of-bases-attribute-method" class="method-detail">
+                               <a name="number_of_bases"></a>
+                               
+                               <a name="number_of_bases="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">number_of_bases</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="clip-qual-left-attribute-method" class="method-detail">
+                               <a name="clip_qual_left"></a>
+                               
+                               <a name="clip_qual_left="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">clip_qual_left</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="clip-qual-right-attribute-method" class="method-detail">
+                               <a name="clip_qual_right"></a>
+                               
+                               <a name="clip_qual_right="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">clip_qual_right</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="clip-adapter-left-attribute-method" class="method-detail">
+                               <a name="clip_adapter_left"></a>
+                               
+                               <a name="clip_adapter_left="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">clip_adapter_left</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="clip-adaptor-right-attribute-method" class="method-detail">
+                               <a name="clip_adaptor_right"></a>
+                               
+                               <a name="clip_adaptor_right="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">clip_adaptor_right</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="name-attribute-method" class="method-detail">
+                               <a name="name"></a>
+                               
+                               <a name="name="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">name</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="flowgram-values-attribute-method" class="method-detail">
+                               <a name="flowgram_values"></a>
+                               
+                               <a name="flowgram_values="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">flowgram_values</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="flow-index-per-base-attribute-method" class="method-detail">
+                               <a name="flow_index_per_base"></a>
+                               
+                               <a name="flow_index_per_base="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">flow_index_per_base</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="bases-attribute-method" class="method-detail">
+                               <a name="bases"></a>
+                               
+                               <a name="bases="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">bases</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="quality-scores-attribute-method" class="method-detail">
+                               <a name="quality_scores"></a>
+                               
+                               <a name="quality_scores="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">quality_scores</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="x-pos-attribute-method" class="method-detail">
+                               <a name="x_pos"></a>
+                               
+                               <a name="x_pos="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">x_pos</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="y-pos-attribute-method" class="method-detail">
+                               <a name="y_pos"></a>
+                               
+                               <a name="y_pos="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">y_pos</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+               </div>
+               
+
+               <!-- Methods -->
+               
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="clip-method" class="method-detail ">
+                               <a name="method-i-clip"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">clip</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that clips sequence (i.e. trims) according to <a
+href="Read.html#clip_qual_left">clip_qual_left</a> and <a
+href="Read.html#clip_qual_right">clip_qual_right</a> information.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="clip-source">
+<pre>
+     <span class="ruby-comment cmt"># File sff.rb, line 228</span>
+228:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clip</span>
+229:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>          = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>]
+230:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">quality_scores</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">quality_scores</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>]
+231:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="mask-method" class="method-detail ">
+                               <a name="method-i-mask"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">mask</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that soft masks the sequence (i.e. lowercases sequence) according to
+<a href="Read.html#clip_qual_left">clip_qual_left</a> and <a
+href="Read.html#clip_qual_right">clip_qual_right</a> information.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="mask-source">
+<pre>
+     <span class="ruby-comment cmt"># File sff.rb, line 218</span>
+218:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mask</span>
+219:     <span class="ruby-identifier">left</span>   = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>].<span class="ruby-identifier">downcase</span>
+220:     <span class="ruby-identifier">middle</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>]
+221:     <span class="ruby-identifier">right</span>  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">downcase</span>
+222: 
+223:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span> = <span class="ruby-identifier">left</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">middle</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">right</span>
+224:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="to-bp-method" class="method-detail ">
+                               <a name="method-i-to_bp"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">to_bp</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that converts a <a href="Read.html">Read</a> object&#8217;s data to
+a Biopiece record (a hash).
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="to-bp-source">
+<pre>
+     <span class="ruby-comment cmt"># File sff.rb, line 197</span>
+197:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_bp</span>
+198:     <span class="ruby-identifier">coordinates_get</span>
+199: 
+200:     <span class="ruby-identifier">hash</span> = {}
+201: 
+202:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SEQ_NAME</span>]           = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>
+203:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SEQ</span>]                = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>
+204:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SEQ_LEN</span>]            = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>.<span class="ruby-identifier">length</span>
+205:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_QUAL_LEFT</span>]     = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span>     <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+206:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_QUAL_RIGHT</span>]    = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>    <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+207:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_ADAPTOR_LEFT</span>]  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_adapter_left</span>  <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+208:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_ADAPTOR_RIGHT</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_adaptor_right</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+209:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SCORES</span>]             = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">quality_scores</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> (<span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">64</span>).<span class="ruby-identifier">chr</span> }.<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
+210:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:X_POS</span>]              = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">x_pos</span>
+211:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:Y_POS</span>]              = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">y_pos</span>
+212: 
+213:     <span class="ruby-identifier">hash</span>
+214:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Private Instance Methods</h3>
+
+               
+                       <div id="coordinates-get-method" class="method-detail ">
+                               <a name="method-i-coordinates_get"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">coordinates_get</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that extracts the X/Y coordinates from an <a href="SFF.html">SFF</a>
+read name encoded with base36.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="coordinates-get-source">
+<pre>
+     <span class="ruby-comment cmt"># File sff.rb, line 237</span>
+237:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coordinates_get</span>
+238:     <span class="ruby-identifier">base36</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>[<span class="ruby-value">5</span>, <span class="ruby-value">5</span>]
+239:     <span class="ruby-identifier">num</span>    = <span class="ruby-constant">Base36</span>.<span class="ruby-identifier">decode</span>(<span class="ruby-identifier">base36</span>)
+240: 
+241:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">x_pos</span> = <span class="ruby-identifier">num</span> <span class="ruby-operator">&gt;&gt;</span> <span class="ruby-constant">BIT_SHIFT</span>
+242:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">y_pos</span> = <span class="ruby-identifier">num</span> &amp;  <span class="ruby-constant">BIT_MASK</span>
+243:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/SFF.html b/code_ruby/Maasha/lib/doc/SFF.html
new file mode 100644 (file)
index 0000000..f3497f6
--- /dev/null
@@ -0,0 +1,712 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: SFF</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./sff_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="sff.rb">sff.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-c-open">::open</a></li>
+                                       
+                                       <li><a href="#method-i-check_header_length">#check_header_length</a></li>
+                                       
+                                       <li><a href="#method-i-check_magic_number">#check_magic_number</a></li>
+                                       
+                                       <li><a href="#method-i-check_version">#check_version</a></li>
+                                       
+                                       <li><a href="#method-i-close">#close</a></li>
+                                       
+                                       <li><a href="#method-i-each">#each</a></li>
+                                       
+                                       <li><a href="#method-i-fast_forward">#fast_forward</a></li>
+                                       
+                                       <li><a href="#method-i-header_parse">#header_parse</a></li>
+                                       
+                                       <li><a href="#method-i-read_parse">#read_parse</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+                       <div id="includes-section" class="section">
+                               <h3 class="section-header">Included Modules</h3>
+                               <ul class="link-list">
+                               
+                               
+                                       <li><span class="include">Enumerable</span></li>
+                               
+                               
+                               </ul>
+                       </div>
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">SFF</h1>
+
+               <div id="description">
+                       <p>
+Class containing methods to parse <a href="SFF.html">SFF</a> files: <a
+href="http://www.ncbi.nlm.nih.gov/Traces/trace.cgi?cmd=show&f=formats&m=doc&s=format#sff">www.ncbi.nlm.nih.gov/Traces/trace.cgi?cmd=show&f=formats&m=doc&s=format#sff</a>
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(io)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to initialize an <a href="SFF.html">SFF</a> object along with
+instance variables pertaining to the <a href="SFF.html">SFF</a> header
+section.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+    <span class="ruby-comment cmt"># File sff.rb, line 58</span>
+58:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">io</span>)
+59:     <span class="ruby-ivar">@io</span>                       = <span class="ruby-identifier">io</span>
+60:     <span class="ruby-ivar">@magic_number</span>             = <span class="ruby-value">0</span>
+61:     <span class="ruby-ivar">@version</span>                  = <span class="ruby-value str">&quot;&quot;</span>
+62:     <span class="ruby-ivar">@index_offset</span>             = <span class="ruby-value">0</span>
+63:     <span class="ruby-ivar">@index_length</span>             = <span class="ruby-value">0</span>
+64:     <span class="ruby-ivar">@number_of_reads</span>          = <span class="ruby-value">0</span>
+65:     <span class="ruby-ivar">@header_length</span>            = <span class="ruby-value">0</span>
+66:     <span class="ruby-ivar">@key_length</span>               = <span class="ruby-value">0</span>
+67:     <span class="ruby-ivar">@number_of_flows_per_read</span> = <span class="ruby-value">0</span>
+68:     <span class="ruby-ivar">@flowgram_format_code</span>     = <span class="ruby-value">0</span>
+69:     <span class="ruby-ivar">@flow_chars</span>               = <span class="ruby-value str">&quot;&quot;</span>
+70:     <span class="ruby-ivar">@key_sequence</span>             = <span class="ruby-value str">&quot;&quot;</span>
+71:     <span class="ruby-ivar">@eight_byte_padding</span>       = <span class="ruby-value">0</span>
+72: 
+73:     <span class="ruby-identifier">header_parse</span>
+74:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="open-method" class="method-detail ">
+                               <a name="method-c-open"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">open</span><span
+                                               class="method-args">(*args)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Class method for opening <a href="SFF.html">SFF</a> files.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="open-source">
+<pre>
+    <span class="ruby-comment cmt"># File sff.rb, line 41</span>
+41:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(*<span class="ruby-identifier">args</span>)
+42:     <span class="ruby-identifier">ios</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(*<span class="ruby-identifier">args</span>)
+43: 
+44:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
+45:       <span class="ruby-keyword kw">begin</span>
+46:         <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ios</span>)
+47:       <span class="ruby-keyword kw">ensure</span>
+48:         <span class="ruby-identifier">ios</span>.<span class="ruby-identifier">close</span>
+49:       <span class="ruby-keyword kw">end</span>
+50:     <span class="ruby-keyword kw">else</span>
+51:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ios</span>)
+52:     <span class="ruby-keyword kw">end</span>
+53:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="close-method" class="method-detail ">
+                               <a name="method-i-close"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">close</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to close ios.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="close-source">
+<pre>
+    <span class="ruby-comment cmt"># File sff.rb, line 77</span>
+77:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
+78:     <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">close</span>
+79:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="each-method" class="method-detail ">
+                               <a name="method-i-each"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">each</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to iterate over each <a href="SFF.html">SFF</a> entry.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="each-source">
+<pre>
+    <span class="ruby-comment cmt"># File sff.rb, line 82</span>
+82:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
+83:     <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">read</span> = <span class="ruby-identifier">read_parse</span>) <span class="ruby-keyword kw">do</span>
+84:       <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">read</span>
+85:     <span class="ruby-keyword kw">end</span>
+86: 
+87:     <span class="ruby-keyword kw">self</span>   <span class="ruby-comment cmt"># conventionally</span>
+88:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Private Instance Methods</h3>
+
+               
+                       <div id="check-header-length-method" class="method-detail ">
+                               <a name="method-i-check_header_length"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_header_length</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to check the header length of an <a href="SFF.html">SFF</a> file.
+Raises an error if the header length don&#8217;t match the file position
+after reading the header section.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-header-length-source">
+<pre>
+     <span class="ruby-comment cmt"># File sff.rb, line 183</span>
+183:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_header_length</span>
+184:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SFFError</span>, <span class="ruby-node">&quot;Bad header length: #{header_length}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">pos</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@header_length</span>
+185:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-magic-number-method" class="method-detail ">
+                               <a name="method-i-check_magic_number"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_magic_number</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to check the magic number of an <a href="SFF.html">SFF</a> file.
+Raises an error if the magic number don&#8217;t match.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-magic-number-source">
+<pre>
+     <span class="ruby-comment cmt"># File sff.rb, line 170</span>
+170:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_magic_number</span>
+171:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SFFError</span>, <span class="ruby-value str">&quot;Badly formatted SFF file.&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@magic_number</span> <span class="ruby-operator">==</span> <span class="ruby-value">779314790</span>
+172:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="check-version-method" class="method-detail ">
+                               <a name="method-i-check_version"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">check_version</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to check the version number of an <a href="SFF.html">SFF</a> file.
+Raises an error if the version don&#8217;t match.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="check-version-source">
+<pre>
+     <span class="ruby-comment cmt"># File sff.rb, line 176</span>
+176:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_version</span>
+177:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SFFError</span>, <span class="ruby-node">&quot;Wrong version: #{@version}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@version</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
+178:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="fast-forward-method" class="method-detail ">
+                               <a name="method-i-fast_forward"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">fast_forward</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that reads the eight_byte_padding field found at the end of the data
+section and fast forwards, i.e. move the file read pointer, so that the
+length of the section is divisible by 8.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="fast-forward-source">
+<pre>
+     <span class="ruby-comment cmt"># File sff.rb, line 122</span>
+122:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fast_forward</span>
+123:     <span class="ruby-identifier">eight_byte_padding</span> = <span class="ruby-value">8</span> <span class="ruby-operator">-</span> (<span class="ruby-ivar">@io</span>.<span class="ruby-identifier">pos</span> <span class="ruby-operator">%</span> <span class="ruby-value">8</span>)
+124: 
+125:     <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">eight_byte_padding</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">eight_byte_padding</span> <span class="ruby-operator">==</span> <span class="ruby-value">8</span>
+126:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="header-parse-method" class="method-detail ">
+                               <a name="method-i-header_parse"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">header_parse</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to parse the <a href="SFF.html">SFF</a> file&#8217;s header section
+and load the information into the instance variables.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="header-parse-source">
+<pre>
+     <span class="ruby-comment cmt"># File sff.rb, line 94</span>
+ 94:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">header_parse</span>
+ 95:     <span class="ruby-identifier">template</span>     = <span class="ruby-value str">&quot;NC4N2NNnnnC&quot;</span>
+ 96:     <span class="ruby-identifier">bits_in_uint</span> = <span class="ruby-value">32</span>
+ 97: 
+ 98:     <span class="ruby-identifier">data</span> = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">31</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">template</span>)
+ 99:     
+100:     <span class="ruby-ivar">@magic_number</span>             = <span class="ruby-identifier">data</span>[<span class="ruby-value">0</span>]
+101:     <span class="ruby-ivar">@version</span>                  = <span class="ruby-identifier">data</span>[<span class="ruby-value">1</span> <span class="ruby-operator">..</span> <span class="ruby-value">4</span>].<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
+102:     <span class="ruby-ivar">@index_offset</span>             = (<span class="ruby-identifier">data</span>[<span class="ruby-value">5</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">bits_in_uint</span>) <span class="ruby-operator">|</span> <span class="ruby-identifier">data</span>[<span class="ruby-value">6</span>]
+103:     <span class="ruby-ivar">@index_length</span>             = <span class="ruby-identifier">data</span>[<span class="ruby-value">7</span>]
+104:     <span class="ruby-ivar">@number_of_reads</span>          = <span class="ruby-identifier">data</span>[<span class="ruby-value">8</span>]
+105:     <span class="ruby-ivar">@header_length</span>            = <span class="ruby-identifier">data</span>[<span class="ruby-value">9</span>]
+106:     <span class="ruby-ivar">@key_length</span>               = <span class="ruby-identifier">data</span>[<span class="ruby-value">10</span>]
+107:     <span class="ruby-ivar">@number_of_flows_per_read</span> = <span class="ruby-identifier">data</span>[<span class="ruby-value">11</span>]
+108:     <span class="ruby-ivar">@flowgram_format_code</span>     = <span class="ruby-identifier">data</span>[<span class="ruby-value">12</span>]
+109:     <span class="ruby-ivar">@flow_chars</span>               = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-ivar">@number_of_flows_per_read</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">&quot;A*&quot;</span>).<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
+110:     <span class="ruby-ivar">@key_sequence</span>             = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-ivar">@key_length</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">&quot;A*&quot;</span>).<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
+111: 
+112:     <span class="ruby-identifier">fast_forward</span>
+113: 
+114:     <span class="ruby-identifier">check_magic_number</span>
+115:     <span class="ruby-identifier">check_version</span>
+116:     <span class="ruby-identifier">check_header_length</span>
+117:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="read-parse-method" class="method-detail ">
+                               <a name="method-i-read_parse"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">read_parse</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to parse a read section of an <a href="SFF.html">SFF</a> file.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="read-parse-source">
+<pre>
+     <span class="ruby-comment cmt"># File sff.rb, line 129</span>
+129:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_parse</span>
+130:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@number_of_reads</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">@@count</span>
+131: 
+132:     <span class="ruby-identifier">template</span> = <span class="ruby-value str">&quot;nnNnnnn&quot;</span>
+133: 
+134:     <span class="ruby-identifier">read</span> = <span class="ruby-constant">Read</span>.<span class="ruby-identifier">new</span>()
+135: 
+136:     <span class="ruby-identifier">data</span> = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">16</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">template</span>)
+137: 
+138:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">read_header_length</span>  = <span class="ruby-identifier">data</span>[<span class="ruby-value">0</span>]
+139:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">name_length</span>         = <span class="ruby-identifier">data</span>[<span class="ruby-value">1</span>]
+140:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">number_of_bases</span>     = <span class="ruby-identifier">data</span>[<span class="ruby-value">2</span>]
+141:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">clip_qual_left</span>      = <span class="ruby-identifier">data</span>[<span class="ruby-value">3</span>]
+142:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">clip_qual_right</span>     = <span class="ruby-identifier">data</span>[<span class="ruby-value">4</span>]
+143:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">clip_adapter_left</span>   = <span class="ruby-identifier">data</span>[<span class="ruby-value">5</span>]
+144:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">clip_adaptor_right</span>  = <span class="ruby-identifier">data</span>[<span class="ruby-value">6</span>]
+145:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">name</span>                = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">read</span>.<span class="ruby-identifier">name_length</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">&quot;A*&quot;</span>).<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
+146: 
+147:     <span class="ruby-identifier">fast_forward</span>
+148: 
+149:     <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">2</span> * <span class="ruby-ivar">@number_of_flows_per_read</span>) <span class="ruby-comment cmt"># skip through flowgram_values</span>
+150:     <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">read</span>.<span class="ruby-identifier">number_of_bases</span>)          <span class="ruby-comment cmt"># skip through flow_index_per_base</span>
+151: 
+152:     <span class="ruby-comment cmt"># NB! Parsing of flowgram_values and flow_index_per_base is currently disabled since these are not needed.</span>
+153:     <span class="ruby-comment cmt"># read.flowgram_values     = @io.read(2 * @number_of_flows_per_read).unpack(&quot;n*&quot;).map { |val| val = sprintf(&quot;%.2f&quot;, val * 0.01) }</span>
+154:     <span class="ruby-comment cmt"># flow_index_per_base      = @io.read(read.number_of_bases).unpack(&quot;C*&quot;)</span>
+155:     <span class="ruby-comment cmt"># (1 ... flow_index_per_base.length).each { |i| flow_index_per_base[i] += flow_index_per_base[i - 1] }</span>
+156:     <span class="ruby-comment cmt"># read.flow_index_per_base = flow_index_per_base</span>
+157: 
+158:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">bases</span>               = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">read</span>.<span class="ruby-identifier">number_of_bases</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">&quot;A*&quot;</span>).<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
+159:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">quality_scores</span>      = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">read</span>.<span class="ruby-identifier">number_of_bases</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">&quot;C*&quot;</span>)
+160: 
+161:     <span class="ruby-identifier">fast_forward</span>
+162: 
+163:     <span class="ruby-identifier">@@count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+164: 
+165:     <span class="ruby-identifier">read</span>
+166:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/SFFError.html b/code_ruby/Maasha/lib/doc/SFFError.html
new file mode 100644 (file)
index 0000000..5ce72a1
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: SFFError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./sff_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="sff.rb">sff.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">SFFError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with <a href="SFF.html">SFF</a>.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Seq.html b/code_ruby/Maasha/lib/doc/Seq.html
new file mode 100644 (file)
index 0000000..b458f01
--- /dev/null
@@ -0,0 +1,1825 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Seq</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./seq_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="seq.rb">seq.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-generate_oligos">::generate_oligos</a></li>
+                                       
+                                       <li><a href="#method-c-new">::new</a></li>
+                                       
+                                       <li><a href="#method-i-adaptor_clip_left">#adaptor_clip_left</a></li>
+                                       
+                                       <li><a href="#method-i-adaptor_clip_right">#adaptor_clip_right</a></li>
+                                       
+                                       <li><a href="#method-i-adaptor_locate_left">#adaptor_locate_left</a></li>
+                                       
+                                       <li><a href="#method-i-adaptor_locate_right">#adaptor_locate_right</a></li>
+                                       
+                                       <li><a href="#method-i-complement">#complement</a></li>
+                                       
+                                       <li><a href="#method-i-composition">#composition</a></li>
+                                       
+                                       <li><a href="#method-i-convert_phred2illumina%21">#convert_phred2illumina!</a></li>
+                                       
+                                       <li><a href="#method-i-convert_solexa2illumina%21">#convert_solexa2illumina!</a></li>
+                                       
+                                       <li><a href="#method-i-generate">#generate</a></li>
+                                       
+                                       <li><a href="#method-i-hard_mask">#hard_mask</a></li>
+                                       
+                                       <li><a href="#method-i-homopol_max">#homopol_max</a></li>
+                                       
+                                       <li><a href="#method-i-indels">#indels</a></li>
+                                       
+                                       <li><a href="#method-i-is_dna%3F">#is_dna?</a></li>
+                                       
+                                       <li><a href="#method-i-is_protein%3F">#is_protein?</a></li>
+                                       
+                                       <li><a href="#method-i-is_rna%3F">#is_rna?</a></li>
+                                       
+                                       <li><a href="#method-i-len">#len</a></li>
+                                       
+                                       <li><a href="#method-i-length">#length</a></li>
+                                       
+                                       <li><a href="#method-i-match">#match</a></li>
+                                       
+                                       <li><a href="#method-i-revcomp">#revcomp</a></li>
+                                       
+                                       <li><a href="#method-i-reverse">#reverse</a></li>
+                                       
+                                       <li><a href="#method-i-reverse_complement">#reverse_complement</a></li>
+                                       
+                                       <li><a href="#method-i-soft_mask">#soft_mask</a></li>
+                                       
+                                       <li><a href="#method-i-solexa2phred">#solexa2phred</a></li>
+                                       
+                                       <li><a href="#method-i-solexa_char2illumina_char">#solexa_char2illumina_char</a></li>
+                                       
+                                       <li><a href="#method-i-subseq">#subseq</a></li>
+                                       
+                                       <li><a href="#method-i-subseq%21">#subseq!</a></li>
+                                       
+                                       <li><a href="#method-i-subseq_rand">#subseq_rand</a></li>
+                                       
+                                       <li><a href="#method-i-to_bp">#to_bp</a></li>
+                                       
+                                       <li><a href="#method-i-to_dna">#to_dna</a></li>
+                                       
+                                       <li><a href="#method-i-to_fasta">#to_fasta</a></li>
+                                       
+                                       <li><a href="#method-i-to_key">#to_key</a></li>
+                                       
+                                       <li><a href="#method-i-to_rna">#to_rna</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+                       <div id="includes-section" class="section">
+                               <h3 class="section-header">Included Modules</h3>
+                               <ul class="link-list">
+                               
+                               
+                                       <li><span class="include">Amatch</span></li>
+                               
+                               
+                               </ul>
+                       </div>
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Seq</h1>
+
+               <div id="description">
+                       
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+               <div id="attribute-method-details" class="method-section section">
+                       <h3 class="section-header">Attributes</h3>
+
+                       
+                       <div id="seq-name-attribute-method" class="method-detail">
+                               <a name="seq_name"></a>
+                               
+                               <a name="seq_name="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">seq_name</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="seq-attribute-method" class="method-detail">
+                               <a name="seq"></a>
+                               
+                               <a name="seq="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">seq</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="type-attribute-method" class="method-detail">
+                               <a name="type"></a>
+                               
+                               <a name="type="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">type</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+                       <div id="qual-attribute-method" class="method-detail">
+                               <a name="qual"></a>
+                               
+                               <a name="qual="></a>
+                               
+                               <div class="method-heading attribute-method-heading">
+                                       <span class="method-name">qual</span><span
+                                               class="attribute-access-type">[RW]</span>
+                               </div>
+
+                               <div class="method-description">
+                               
+                               
+                               
+                               </div>
+                       </div>
+                       
+               </div>
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="generate-oligos-method" class="method-detail ">
+                               <a name="method-c-generate_oligos"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">generate_oligos</span><span
+                                               class="method-args">(length, type)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that generates all possible oligos of a specifed length and type.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="generate-oligos-source">
+<pre>
+    <span class="ruby-comment cmt"># File seq.rb, line 47</span>
+47:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">generate_oligos</span>(<span class="ruby-identifier">length</span>, <span class="ruby-identifier">type</span>)
+48:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot generate negative oligo length: #{length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
+49: 
+50:     <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">downcase</span>
+51:     <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/dna/</span>     <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">alph</span> = <span class="ruby-constant">DNA</span>
+52:     <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/rna/</span>     <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">alph</span> = <span class="ruby-constant">RNA</span>
+53:     <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/protein/</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">alph</span> = <span class="ruby-constant">PROTEIN</span>
+54:     <span class="ruby-keyword kw">else</span>
+55:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Unknown sequence type: #{type}&quot;</span>
+56:     <span class="ruby-keyword kw">end</span>
+57: 
+58:     <span class="ruby-identifier">oligos</span> = [<span class="ruby-value str">&quot;&quot;</span>]
+59: 
+60:     (<span class="ruby-value">1</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span>
+61:       <span class="ruby-identifier">list</span> = []
+62: 
+63:       <span class="ruby-identifier">oligos</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">oligo</span><span class="ruby-operator">|</span>
+64:         <span class="ruby-identifier">alph</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
+65:           <span class="ruby-identifier">list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">oligo</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">char</span>
+66:         <span class="ruby-keyword kw">end</span>
+67:       <span class="ruby-keyword kw">end</span>
+68: 
+69:       <span class="ruby-identifier">oligos</span> = <span class="ruby-identifier">list</span>
+70:     <span class="ruby-keyword kw">end</span>
+71: 
+72:     <span class="ruby-identifier">oligos</span>
+73:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="new-method" class="method-detail ">
+                               <a name="method-c-new"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">new</span><span
+                                               class="method-args">(seq_name = nil, seq = nil, type = nil, qual = nil)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Initialize a sequence object with the following arguments:
+</p>
+<ul>
+<li><p>
+<a href="Seq.html#seq_name">seq_name</a>: Name of the sequence.
+</p>
+</li>
+<li><p>
+seq: The sequence.
+</p>
+</li>
+<li><p>
+type: The sequence type - DNA, RNA, or protein
+</p>
+</li>
+<li><p>
+qual: An Illumina type quality scores string.
+</p>
+</li>
+</ul>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="new-source">
+<pre>
+    <span class="ruby-comment cmt"># File seq.rb, line 80</span>
+80:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">seq_name</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">seq</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">type</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">qual</span> = <span class="ruby-keyword kw">nil</span>)
+81:     <span class="ruby-ivar">@seq_name</span> = <span class="ruby-identifier">seq_name</span>
+82:     <span class="ruby-ivar">@seq</span>      = <span class="ruby-identifier">seq</span>
+83:     <span class="ruby-ivar">@type</span>     = <span class="ruby-identifier">type</span>
+84:     <span class="ruby-ivar">@qual</span>     = <span class="ruby-identifier">qual</span>
+85:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="adaptor-clip-left-method" class="method-detail ">
+                               <a name="method-i-adaptor_clip_left"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">adaptor_clip_left</span><span
+                                               class="method-args">(adaptor, hd_percent = 0)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that locates an adaptor or part thereof in the sequence of a <a
+href="Seq.html">Seq</a> object beginning from the left and removes the
+adaptor sequence if found. The hd_percent is used to calculate the maximum
+hamming distance allowed for all possible overlaps.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="adaptor-clip-left-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 377</span>
+377:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adaptor_clip_left</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span> = <span class="ruby-value">0</span>)
+378:     <span class="ruby-identifier">pos</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">adaptor_locate_left</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span>)
+379: 
+380:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
+381:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">pos</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>]
+382:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>[<span class="ruby-identifier">pos</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">length</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">nil?</span>
+383:     <span class="ruby-keyword kw">end</span>
+384:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="adaptor-clip-right-method" class="method-detail ">
+                               <a name="method-i-adaptor_clip_right"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">adaptor_clip_right</span><span
+                                               class="method-args">(adaptor, hd_percent = 0)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that locates an adaptor or part thereof in the sequence of a <a
+href="Seq.html">Seq</a> object beginning from the right and removes the
+adaptor sequence if found. The hd_percent is used to calculate the maximum
+hamming distance allowed for all possible overlaps.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="adaptor-clip-right-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 364</span>
+364:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adaptor_clip_right</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span> = <span class="ruby-value">0</span>)
+365:     <span class="ruby-identifier">pos</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">adaptor_locate_right</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span>)
+366: 
+367:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
+368:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">pos</span>]
+369:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">pos</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">nil?</span>
+370:     <span class="ruby-keyword kw">end</span>
+371:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="adaptor-locate-left-method" class="method-detail ">
+                               <a name="method-i-adaptor_locate_left"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">adaptor_locate_left</span><span
+                                               class="method-args">(adaptor, hd_percent = 0)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that locates an adaptor or part thereof in the sequence of a <a
+href="Seq.html">Seq</a> object beginning from the left. Returns the
+location in the sequence that overlaps with the adaptor or -1 if the
+adaptor was not found. The hd_percent is used to calculate the maximum
+hamming distance allowed for all possible overlaps.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="adaptor-locate-left-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 340</span>
+340:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adaptor_locate_left</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span> = <span class="ruby-value">0</span>)
+341:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Hamming distance percent out of range #{hd_percent}&quot;</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-value">0</span> <span class="ruby-operator">..</span> <span class="ruby-value">100</span>).<span class="ruby-identifier">include?</span> <span class="ruby-identifier">hd_percent</span>
+342:     <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">adaptor</span>.<span class="ruby-identifier">length</span>
+343: 
+344:     <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
+345:       <span class="ruby-identifier">len</span>          = <span class="ruby-identifier">pos</span>
+346:       <span class="ruby-identifier">subseq</span>       = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">len</span>].<span class="ruby-identifier">upcase</span>
+347:       <span class="ruby-identifier">subadaptor</span>   = <span class="ruby-identifier">adaptor</span>[<span class="ruby-identifier">adaptor</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">len</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">adaptor</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">upcase</span>
+348:       <span class="ruby-identifier">m</span>            = <span class="ruby-constant">Hamming</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">subseq</span>)
+349:       <span class="ruby-identifier">hamming_dist</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">subadaptor</span>)
+350:       <span class="ruby-identifier">hamming_max</span>  = (<span class="ruby-identifier">len</span> * <span class="ruby-identifier">hd_percent</span> * <span class="ruby-value">0.01</span>).<span class="ruby-identifier">round</span>
+351: 
+352:       <span class="ruby-identifier">pos</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
+353: 
+354:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">pos</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hamming_dist</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">hamming_max</span>
+355:     <span class="ruby-keyword kw">end</span>
+356:     
+357:     <span class="ruby-value">1</span>
+358:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="adaptor-locate-right-method" class="method-detail ">
+                               <a name="method-i-adaptor_locate_right"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">adaptor_locate_right</span><span
+                                               class="method-args">(adaptor, hd_percent = 0)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that locates an adaptor or part thereof in the sequence of a <a
+href="Seq.html">Seq</a> object beginning from the right. Returns the
+location in the sequence that overlaps with the adaptor or -1 if the
+adaptor was not found. The hd_percent is used to calculate the maximum
+hamming distance allowed for all possible overlaps.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="adaptor-locate-right-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 316</span>
+316:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adaptor_locate_right</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span> = <span class="ruby-value">0</span>)
+317:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Hamming distance percent out of range #{hd_percent}&quot;</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-value">0</span> <span class="ruby-operator">..</span> <span class="ruby-value">100</span>).<span class="ruby-identifier">include?</span> <span class="ruby-identifier">hd_percent</span>
+318:     <span class="ruby-identifier">pos</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">adaptor</span>.<span class="ruby-identifier">length</span>
+319: 
+320:     <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
+321:       <span class="ruby-identifier">len</span>          = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">pos</span>
+322:       <span class="ruby-identifier">subseq</span>       = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">pos</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">len</span>].<span class="ruby-identifier">upcase</span>
+323:       <span class="ruby-identifier">subadaptor</span>   = <span class="ruby-identifier">adaptor</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">len</span>].<span class="ruby-identifier">upcase</span>
+324:       <span class="ruby-identifier">m</span>            = <span class="ruby-constant">Hamming</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">subseq</span>)
+325:       <span class="ruby-identifier">hamming_dist</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">subadaptor</span>)
+326:       <span class="ruby-identifier">hamming_max</span>  = (<span class="ruby-identifier">len</span> * <span class="ruby-identifier">hd_percent</span> * <span class="ruby-value">0.01</span>).<span class="ruby-identifier">round</span>
+327:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">pos</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hamming_dist</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">hamming_max</span>
+328: 
+329:       <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+330:     <span class="ruby-keyword kw">end</span>
+331: 
+332:     <span class="ruby-value">1</span>
+333:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="complement-method" class="method-detail ">
+                               <a name="method-i-complement"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">complement</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that complements sequence including ambiguity codes.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="complement-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 196</span>
+196:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">complement</span>
+197:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot complement 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+198: 
+199:     <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_dna?</span>
+200:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>( <span class="ruby-value str">'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn'</span>, <span class="ruby-value str">'TCGAAYRWSKMDHBVNtcgaayrwskmdhbvn'</span> )
+201:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_rna?</span>
+202:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>( <span class="ruby-value str">'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn'</span>, <span class="ruby-value str">'UCGAAYRWSKMDHBVNucgaayrwskmdhbvn'</span> )
+203:     <span class="ruby-keyword kw">else</span>
+204:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot complement sequence type: #{self.type}&quot;</span>
+205:     <span class="ruby-keyword kw">end</span>
+206:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="composition-method" class="method-detail ">
+                               <a name="method-i-composition"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">composition</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns the residue compositions of a sequence in a hash where
+the key is the residue and the value is the residue count.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="composition-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 272</span>
+272:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">composition</span>
+273:     <span class="ruby-identifier">comp</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>);
+274: 
+275:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
+276:       <span class="ruby-identifier">comp</span>[<span class="ruby-identifier">char</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
+277:     <span class="ruby-keyword kw">end</span>
+278: 
+279:     <span class="ruby-identifier">comp</span>
+280:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="convert-phred-illumina--method" class="method-detail ">
+                               <a name="method-i-convert_phred2illumina%21"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">convert_phred2illumina!</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to convert the quality scores from a specified base to another base.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="convert-phred-illumina--source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 388</span>
+388:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert_phred2illumina!</span>
+389:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">/./</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">score</span><span class="ruby-operator">|</span>
+390:       <span class="ruby-identifier">score_phred</span>  = <span class="ruby-identifier">score</span>.<span class="ruby-identifier">ord</span> <span class="ruby-operator">-</span> <span class="ruby-constant">SCORE_PHRED</span>
+391:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Bad Phred score: #{score} (#{score_phred})&quot;</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-value">0</span> <span class="ruby-operator">..</span> <span class="ruby-value">40</span>).<span class="ruby-identifier">include?</span> <span class="ruby-identifier">score_phred</span>
+392:       <span class="ruby-identifier">score_illumina</span> = <span class="ruby-identifier">score_phred</span> <span class="ruby-operator">+</span> <span class="ruby-constant">SCORE_ILLUMINA</span>
+393:       <span class="ruby-identifier">score</span>          = <span class="ruby-identifier">score_illumina</span>.<span class="ruby-identifier">chr</span>
+394:     <span class="ruby-keyword kw">end</span>
+395:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="convert-solexa-illumina--method" class="method-detail ">
+                               <a name="method-i-convert_solexa2illumina%21"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">convert_solexa2illumina!</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to convert the quality scores from Solexa odd/ratio to Illumina
+format.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="convert-solexa-illumina--source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 399</span>
+399:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert_solexa2illumina!</span>
+400:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">/./</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">score</span><span class="ruby-operator">|</span>
+401:       <span class="ruby-identifier">score</span> = <span class="ruby-identifier">solexa_char2illumina_char</span>(<span class="ruby-identifier">score</span>)
+402:     <span class="ruby-keyword kw">end</span>
+403:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="generate-method" class="method-detail ">
+                               <a name="method-i-generate"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">generate</span><span
+                                               class="method-args">(length, type)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that generates a random sequence of a given length and type.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="generate-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 209</span>
+209:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">length</span>, <span class="ruby-identifier">type</span>)
+210:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot generate sequence length &lt; 1: #{length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
+211: 
+212:     <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">downcase</span>
+213:     <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;dna&quot;</span>
+214:       <span class="ruby-identifier">alph</span> = <span class="ruby-constant">DNA</span>
+215:     <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;rna&quot;</span>
+216:       <span class="ruby-identifier">alph</span> = <span class="ruby-constant">RNA</span>
+217:     <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;protein&quot;</span>
+218:       <span class="ruby-identifier">alph</span> = <span class="ruby-constant">PROTEIN</span>
+219:     <span class="ruby-keyword kw">else</span>
+220:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Unknown sequence type: #{type}&quot;</span>
+221:     <span class="ruby-keyword kw">end</span>
+222: 
+223:     <span class="ruby-identifier">seq_new</span>   = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">length</span>) { <span class="ruby-identifier">alph</span>[<span class="ruby-identifier">rand</span>(<span class="ruby-identifier">alph</span>.<span class="ruby-identifier">size</span>)] }.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;&quot;</span>)
+224:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>  = <span class="ruby-identifier">seq_new</span>
+225:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">downcase</span>
+226:     <span class="ruby-identifier">seq_new</span>
+227:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="hard-mask-method" class="method-detail ">
+                               <a name="method-i-hard_mask"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">hard_mask</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns the percentage of hard masked residues or N&#8217;s in
+a sequence.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="hard-mask-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 301</span>
+301:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hard_mask</span>
+302:     ((<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-value str">&quot;N&quot;</span>).<span class="ruby-identifier">size</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">len</span> <span class="ruby-operator">-</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">indels</span>).<span class="ruby-identifier">to_f</span>) * <span class="ruby-value">100</span>).<span class="ruby-identifier">round</span>(<span class="ruby-value">2</span>)
+303:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="homopol-max-method" class="method-detail ">
+                               <a name="method-i-homopol_max"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">homopol_max</span><span
+                                               class="method-args">(min = 1)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns the length of the longest homopolymeric stretch found
+in a sequence.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="homopol-max-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 284</span>
+284:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">homopol_max</span>(<span class="ruby-identifier">min</span> = <span class="ruby-value">1</span>)
+285:     <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">empty?</span>
+286: 
+287:     <span class="ruby-identifier">found</span> = <span class="ruby-keyword kw">false</span>
+288: 
+289:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-node">/A{#{min},}|T{#{min},}|G{#{min},}|C{#{min},}|N{#{min},}/</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
+290:       <span class="ruby-identifier">found</span> = <span class="ruby-keyword kw">true</span>
+291:       <span class="ruby-identifier">min</span>   = <span class="ruby-identifier">match</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">min</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">min</span>
+292:     <span class="ruby-keyword kw">end</span>
+293: 
+294:     <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">found</span>
+295:  
+296:     <span class="ruby-identifier">min</span>
+297:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="indels-method" class="method-detail ">
+                               <a name="method-i-indels"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">indels</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Return the number indels in a sequence.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="indels-source">
+<pre>
+    <span class="ruby-comment cmt"># File seq.rb, line 95</span>
+95:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indels</span>
+96:     <span class="ruby-identifier">regex</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">/[#{Regexp.escape(INDELS.join(&quot;&quot;))}]/</span>)
+97:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">regex</span>).<span class="ruby-identifier">size</span>
+98:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="is-dna--method" class="method-detail ">
+                               <a name="method-i-is_dna%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">is_dna?</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns true is a given sequence type is DNA.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="is-dna--source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 101</span>
+101:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_dna?</span>
+102:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'dna'</span>
+103:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="is-protein--method" class="method-detail ">
+                               <a name="method-i-is_protein%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">is_protein?</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns true is a given sequence type is protein.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="is-protein--source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 111</span>
+111:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_protein?</span>
+112:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'protein'</span>
+113:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="is-rna--method" class="method-detail ">
+                               <a name="method-i-is_rna%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">is_rna?</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns true is a given sequence type is RNA.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="is-rna--source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 106</span>
+106:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_rna?</span>
+107:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'rna'</span>
+108:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="len-method" class="method-detail method-alias">
+                               <a name="method-i-len"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">len</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                               </div>
+
+                               
+
+                               
+                               <div class="aliases">
+          Alias for: <a href="Seq.html#method-i-length">length</a>
+                               </div>
+                               
+                       </div>
+
+               
+                       <div id="length-method" class="method-detail ">
+                               <a name="method-i-length"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">length</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Returns the length of a sequence.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="length-source">
+<pre>
+    <span class="ruby-comment cmt"># File seq.rb, line 88</span>
+88:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">length</span>
+89:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">length</span>
+90:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+                               <div class="aliases">
+                                       Also aliased as: <a href="Seq.html#method-i-len">len</a>
+                               </div>
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="match-method" class="method-detail ">
+                               <a name="method-i-match"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">match</span><span
+                                               class="method-args">(patter, pos)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <hr style="height: 10px"></hr><pre>
+  seq.match(pattern[, pos ] [, hd=max] [, ed=max]) -&gt; matchdata or nil
+</pre>
+<hr style="height: 10px"></hr><p>
+Method to locate a pattern in a sequence  and return the position of the
+match or nil if no match was found. Optional maximum Hamming and Edit
+distance can be specified.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="match-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 411</span>
+411:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">match</span>(<span class="ruby-identifier">patter</span>, <span class="ruby-identifier">pos</span>)
+412:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="revcomp-method" class="method-detail method-alias">
+                               <a name="method-i-revcomp"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">revcomp</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       
+                                       
+
+                                       
+                               </div>
+
+                               
+
+                               
+                               <div class="aliases">
+          Alias for: <a href="Seq.html#method-i-reverse_complement">reverse_complement</a>
+                               </div>
+                               
+                       </div>
+
+               
+                       <div id="reverse-method" class="method-detail ">
+                               <a name="method-i-reverse"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">reverse</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to reverse the sequence.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="reverse-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 191</span>
+191:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse</span>
+192:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">reverse!</span>
+193:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="reverse-complement-method" class="method-detail ">
+                               <a name="method-i-reverse_complement"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">reverse_complement</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to reverse complement sequence.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="reverse-complement-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 183</span>
+183:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse_complement</span>
+184:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">reverse</span>
+185:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">complement</span>
+186:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+                               <div class="aliases">
+                                       Also aliased as: <a href="Seq.html#method-i-revcomp">revcomp</a>
+                               </div>
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="soft-mask-method" class="method-detail ">
+                               <a name="method-i-soft_mask"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">soft_mask</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns the percentage of soft masked residues or lower cased
+residues in a sequence.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="soft-mask-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 307</span>
+307:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">soft_mask</span>
+308:     ((<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/[a-z]/</span>).<span class="ruby-identifier">size</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">len</span> <span class="ruby-operator">-</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">indels</span>).<span class="ruby-identifier">to_f</span>) * <span class="ruby-value">100</span>).<span class="ruby-identifier">round</span>(<span class="ruby-value">2</span>)
+309:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="subseq-method" class="method-detail ">
+                               <a name="method-i-subseq"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">subseq</span><span
+                                               class="method-args">(start, length = self.length - start)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns a subsequence of from a given start position and of a
+given length.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="subseq-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 231</span>
+231:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">subseq</span>(<span class="ruby-identifier">start</span>, <span class="ruby-identifier">length</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start</span>)
+232:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence start: #{start} &lt; 0&quot;</span>                                                <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span>  <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
+233:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence length: #{length} &lt; 1&quot;</span>                                              <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
+234:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence start + length &gt; Seq.length: #{start} + #{length} &gt; #{self.length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
+235: 
+236:     <span class="ruby-identifier">stop</span> = <span class="ruby-identifier">start</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+237: 
+238:     <span class="ruby-identifier">seq</span>  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">start</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">stop</span>]
+239:     <span class="ruby-identifier">qual</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>[<span class="ruby-identifier">start</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">stop</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">nil?</span>
+240: 
+241:     <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>, <span class="ruby-identifier">seq</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">qual</span>)
+242:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="subseq--method" class="method-detail ">
+                               <a name="method-i-subseq%21"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">subseq!</span><span
+                                               class="method-args">(start, length = self.length - start)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that replaces a sequence with a subsequence from a given start
+position and of a given length.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="subseq--source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 246</span>
+246:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">subseq!</span>(<span class="ruby-identifier">start</span>, <span class="ruby-identifier">length</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start</span>)
+247:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence start: #{start} &lt; 0&quot;</span>                                                <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span>  <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
+248:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence length: #{length} &lt; 1&quot;</span>                                              <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
+249:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence start + length &gt; Seq.length: #{start} + #{length} &gt; #{self.length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
+250: 
+251:     <span class="ruby-identifier">stop</span> = <span class="ruby-identifier">start</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
+252: 
+253:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">start</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">stop</span>]
+254:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>[<span class="ruby-identifier">start</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">stop</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">nil?</span>
+255:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="subseq-rand-method" class="method-detail ">
+                               <a name="method-i-subseq_rand"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">subseq_rand</span><span
+                                               class="method-args">(length)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that returns a subsequence of a given length beginning at a random
+position.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="subseq-rand-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 259</span>
+259:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">subseq_rand</span>(<span class="ruby-identifier">length</span>)
+260:     <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+261:       <span class="ruby-identifier">start</span> = <span class="ruby-value">0</span>
+262:     <span class="ruby-keyword kw">else</span>
+263:       <span class="ruby-identifier">start</span> = <span class="ruby-identifier">rand</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
+264:     <span class="ruby-keyword kw">end</span>
+265: 
+266:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">subseq</span>(<span class="ruby-identifier">start</span>, <span class="ruby-identifier">length</span>)
+267:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="to-bp-method" class="method-detail ">
+                               <a name="method-i-to_bp"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">to_bp</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that given a <a href="Seq.html">Seq</a> entry returns a <a
+href="Biopieces.html">Biopieces</a> record (a hash).
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="to-bp-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 132</span>
+132:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_bp</span>
+133:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Missing seq_name&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">nil?</span>
+134:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Missing seq&quot;</span>      <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
+135:     <span class="ruby-identifier">record</span>             = {}
+136:     <span class="ruby-identifier">record</span>[<span class="ruby-value">:SEQ_NAME</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>
+137:     <span class="ruby-identifier">record</span>[<span class="ruby-value">:SEQ</span>]      = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>
+138:     <span class="ruby-identifier">record</span>[<span class="ruby-value">:SEQ_LEN</span>]  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
+139:     <span class="ruby-identifier">record</span>[<span class="ruby-value">:SCORES</span>]   = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>
+140:     <span class="ruby-identifier">record</span>
+141:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="to-dna-method" class="method-detail ">
+                               <a name="method-i-to_dna"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">to_dna</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to reverse-transcribe RNA to DNA.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="to-dna-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 124</span>
+124:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_dna</span>
+125:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot reverse-transcribe 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+126:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot reverse-transcribe sequence type: #{self.type}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_rna?</span>
+127:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'dna'</span>
+128:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>(<span class="ruby-value str">'Uu'</span>,<span class="ruby-value str">'Tt'</span>)
+129:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="to-fasta-method" class="method-detail ">
+                               <a name="method-i-to_fasta"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">to_fasta</span><span
+                                               class="method-args">(wrap = nil)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that given a <a href="Seq.html">Seq</a> entry returns a FASTA entry
+(a string).
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="to-fasta-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 144</span>
+144:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_fasta</span>(<span class="ruby-identifier">wrap</span> = <span class="ruby-keyword kw">nil</span>)
+145:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Missing seq_name&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">nil?</span>
+146:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Missing seq&quot;</span>      <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
+147: 
+148:     <span class="ruby-identifier">seq_name</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>
+149:     <span class="ruby-identifier">seq</span>      = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>
+150: 
+151:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">wrap</span>.<span class="ruby-identifier">nil?</span>
+152:       <span class="ruby-identifier">seq</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-node">/(.{#{wrap}})/</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
+153:         <span class="ruby-identifier">match</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
+154:       <span class="ruby-keyword kw">end</span>
+155: 
+156:       <span class="ruby-identifier">seq</span>.<span class="ruby-identifier">chomp!</span>
+157:     <span class="ruby-keyword kw">end</span>
+158: 
+159:     <span class="ruby-node">&quot;&gt;#{seq_name}\n#{seq}\n&quot;</span>
+160:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="to-key-method" class="method-detail ">
+                               <a name="method-i-to_key"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">to_key</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that generates a unique key for a DNA sequence and return this key
+as a Fixnum.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="to-key-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 164</span>
+164:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_key</span>
+165:     <span class="ruby-identifier">key</span> = <span class="ruby-value">0</span>
+166:     
+167:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
+168:       <span class="ruby-identifier">key</span> <span class="ruby-operator">&lt;&lt;=</span> <span class="ruby-value">2</span>
+169:       
+170:       <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">char</span>
+171:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'A'</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">key</span> <span class="ruby-operator">|=</span> <span class="ruby-value">0</span>
+172:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'C'</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">key</span> <span class="ruby-operator">|=</span> <span class="ruby-value">1</span>
+173:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'G'</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">key</span> <span class="ruby-operator">|=</span> <span class="ruby-value">2</span>
+174:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'T'</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">key</span> <span class="ruby-operator">|=</span> <span class="ruby-value">3</span>
+175:       <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Bad residue: #{char}&quot;</span>
+176:       <span class="ruby-keyword kw">end</span>
+177:     <span class="ruby-keyword kw">end</span>
+178:     
+179:     <span class="ruby-identifier">key</span>
+180:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="to-rna-method" class="method-detail ">
+                               <a name="method-i-to_rna"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">to_rna</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to transcribe DNA to RNA.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="to-rna-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 116</span>
+116:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_rna</span>
+117:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot transcribe 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+118:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot transcribe sequence type: #{self.type}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_dna?</span>
+119:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'rna'</span>
+120:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>(<span class="ruby-value str">'Tt'</span>,<span class="ruby-value str">'Uu'</span>)
+121:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Private Instance Methods</h3>
+
+               
+                       <div id="solexa-phred-method" class="method-detail ">
+                               <a name="method-i-solexa2phred"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">solexa2phred</span><span
+                                               class="method-args">(score)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to convert a Solexa score (odd ratio) to a phred (probability)
+integer score.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="solexa-phred-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 418</span>
+418:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">solexa2phred</span>(<span class="ruby-identifier">score</span>)
+419:     (<span class="ruby-value">10.0</span> * <span class="ruby-constant">Math</span>.<span class="ruby-identifier">log</span>(<span class="ruby-value">10.0</span> <span class="ruby-operator">**</span> (<span class="ruby-identifier">score</span> <span class="ruby-operator">/</span> <span class="ruby-value">10.0</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1.0</span>, <span class="ruby-value">10</span>)).<span class="ruby-identifier">to_i</span>
+420:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="solexa-char-illumina-char-method" class="method-detail ">
+                               <a name="method-i-solexa_char2illumina_char"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">solexa_char2illumina_char</span><span
+                                               class="method-args">(char)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to convert a Solexa score encoded using base 64 ASCII to a Phred
+score encoded using base 64 ASCII.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="solexa-char-illumina-char-source">
+<pre>
+     <span class="ruby-comment cmt"># File seq.rb, line 424</span>
+424:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">solexa_char2illumina_char</span>(<span class="ruby-identifier">char</span>)
+425:     <span class="ruby-identifier">score_solexa</span> = <span class="ruby-identifier">char</span>.<span class="ruby-identifier">ord</span> <span class="ruby-operator">-</span> <span class="ruby-value">64</span>
+426:     <span class="ruby-identifier">score_phred</span>  = <span class="ruby-identifier">solexa2phred</span>(<span class="ruby-identifier">score_solexa</span>)
+427:     (<span class="ruby-identifier">score_phred</span> <span class="ruby-operator">+</span> <span class="ruby-value">64</span>).<span class="ruby-identifier">chr</span>
+428:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/SeqError.html b/code_ruby/Maasha/lib/doc/SeqError.html
new file mode 100644 (file)
index 0000000..16dca69
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: SeqError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./seq_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="seq.rb">seq.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">SeqError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with <a href="Seq.html">Seq</a>.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Status.html b/code_ruby/Maasha/lib/doc/Status.html
new file mode 100644 (file)
index 0000000..a06e728
--- /dev/null
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Status</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-i-delete">#delete</a></li>
+                                       
+                                       <li><a href="#method-i-get_tmpdir">#get_tmpdir</a></li>
+                                       
+                                       <li><a href="#method-i-log">#log</a></li>
+                                       
+                                       <li><a href="#method-i-path">#path</a></li>
+                                       
+                                       <li><a href="#method-i-set">#set</a></li>
+                                       
+                                       <li><a href="#method-i-set_tmpdir">#set_tmpdir</a></li>
+                                       
+                                       <li><a href="#method-i-time_diff">#time_diff</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Status</h1>
+
+               <div id="description">
+                       <p>
+Class for manipulating the execution status of <a
+href="Biopieces.html">Biopieces</a> by setting a status file with a time
+stamp, process id, and command arguments. The status file is used for
+creating log entries and for displaying the runtime status of <a
+href="Biopieces.html">Biopieces</a>.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="delete-method" class="method-detail ">
+                               <a name="method-i-delete"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">delete</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Delete status file.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="delete-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 547</span>
+547:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>
+548:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">path</span>)
+549:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="get-tmpdir-method" class="method-detail ">
+                               <a name="method-i-get_tmpdir"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">get_tmpdir</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Extract the temporary directory path from the status file, and return this
+or nil if not found.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="get-tmpdir-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 520</span>
+520:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_tmpdir</span>
+521:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;r&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
+522:       <span class="ruby-identifier">tmpdir_path</span> = <span class="ruby-identifier">fh</span>.<span class="ruby-identifier">read</span>.<span class="ruby-identifier">chomp</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;;&quot;</span>).<span class="ruby-identifier">last</span>
+523:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tmpdir_path</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">tmpdir_path</span>)
+524:     <span class="ruby-keyword kw">end</span>
+525: 
+526:     <span class="ruby-keyword kw">nil</span>
+527:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="log-method" class="method-detail ">
+                               <a name="method-i-log"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">log</span><span
+                                               class="method-args">(exit_status)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Write the Biopiece status to the log file.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="log-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 530</span>
+530:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log</span>(<span class="ruby-identifier">exit_status</span>)
+531:     <span class="ruby-identifier">time1</span>   = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%d %X&quot;</span>)
+532:     <span class="ruby-identifier">user</span>    = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;USER&quot;</span>]
+533:     <span class="ruby-identifier">script</span>  = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">$0</span>)
+534: 
+535:     <span class="ruby-identifier">stream</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>)
+536:     <span class="ruby-identifier">time0</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">tmp_dir</span> = <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;;&quot;</span>)
+537:     <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">close</span>
+538: 
+539:     <span class="ruby-identifier">elap</span>     = <span class="ruby-identifier">time_diff</span>(<span class="ruby-identifier">time0</span>, <span class="ruby-identifier">time1</span>)
+540:     <span class="ruby-identifier">command</span>  = [<span class="ruby-identifier">script</span>, <span class="ruby-identifier">args</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot; &quot;</span>) 
+541:     <span class="ruby-identifier">log_file</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_LOG&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/biopieces.log&quot;</span>
+542: 
+543:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">log_file</span>, <span class="ruby-identifier">mode</span> = <span class="ruby-value str">&quot;a&quot;</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">puts</span> [<span class="ruby-identifier">time0</span>, <span class="ruby-identifier">time1</span>, <span class="ruby-identifier">elap</span>, <span class="ruby-identifier">user</span>, <span class="ruby-identifier">exit_status</span>, <span class="ruby-identifier">command</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\t&quot;</span>) }
+544:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="set-method" class="method-detail ">
+                               <a name="method-i-set"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">set</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Write the status to a status file.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="set-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 495</span>
+495:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set</span>
+496:     <span class="ruby-identifier">time0</span>  = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%d %X&quot;</span>)
+497: 
+498:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
+499:       <span class="ruby-identifier">fh</span>.<span class="ruby-identifier">puts</span> [<span class="ruby-identifier">time0</span>, <span class="ruby-constant">ARGV</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot; &quot;</span>)].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;;&quot;</span>)
+500:     <span class="ruby-keyword kw">end</span>
+501:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="set-tmpdir-method" class="method-detail ">
+                               <a name="method-i-set_tmpdir"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">set_tmpdir</span><span
+                                               class="method-args">(tmpdir_path)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Append the a temporary directory path to the status file.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="set-tmpdir-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 504</span>
+504:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_tmpdir</span>(<span class="ruby-identifier">tmpdir_path</span>)
+505:     <span class="ruby-identifier">status</span> = <span class="ruby-value str">&quot;&quot;</span>
+506: 
+507:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;r&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
+508:       <span class="ruby-identifier">status</span> = <span class="ruby-identifier">fh</span>.<span class="ruby-identifier">read</span>.<span class="ruby-identifier">chomp</span>
+509:     <span class="ruby-keyword kw">end</span>
+510: 
+511:     <span class="ruby-identifier">status</span> = <span class="ruby-node">&quot;#{status};#{tmpdir_path}\n&quot;</span>
+512: 
+513:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
+514:       <span class="ruby-identifier">fh</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">status</span>
+515:     <span class="ruby-keyword kw">end</span>
+516:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Private Instance Methods</h3>
+
+               
+                       <div id="path-method" class="method-detail ">
+                               <a name="method-i-path"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">path</span><span
+                                               class="method-args">()</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Path to status file
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="path-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 554</span>
+554:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path</span>
+555:     <span class="ruby-identifier">user</span>   = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;USER&quot;</span>]
+556:     <span class="ruby-identifier">script</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">$0</span>)
+557:     <span class="ruby-identifier">pid</span>    = <span class="ruby-identifier">$$</span>
+558:     <span class="ruby-identifier">path</span>   = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_TMP&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/&quot;</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">user</span>, <span class="ruby-identifier">script</span>, <span class="ruby-identifier">pid</span>, <span class="ruby-value str">&quot;status&quot;</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;.&quot;</span>)
+559:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="time-diff-method" class="method-detail ">
+                               <a name="method-i-time_diff"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">time_diff</span><span
+                                               class="method-args">(t0, t1)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Get the elapsed time from the difference between two time stamps.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="time-diff-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 562</span>
+562:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">time_diff</span>(<span class="ruby-identifier">t0</span>, <span class="ruby-identifier">t1</span>)
+563:     <span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span>((<span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">t1</span>).<span class="ruby-identifier">to_time</span> <span class="ruby-operator">-</span> <span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">t0</span>).<span class="ruby-identifier">to_time</span>).<span class="ruby-identifier">to_i</span>).<span class="ruby-identifier">gmtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%X'</span>)
+564:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/Stream.html b/code_ruby/Maasha/lib/doc/Stream.html
new file mode 100644 (file)
index 0000000..24d3772
--- /dev/null
@@ -0,0 +1,557 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: Stream</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">IO</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-nread">::nread</a></li>
+                                       
+                                       <li><a href="#method-c-nwrite">::nwrite</a></li>
+                                       
+                                       <li><a href="#method-c-open">::open</a></li>
+                                       
+                                       <li><a href="#method-c-read">::read</a></li>
+                                       
+                                       <li><a href="#method-c-write">::write</a></li>
+                                       
+                                       <li><a href="#method-c-zipped%3F">::zipped?</a></li>
+                                       
+                                       <li><a href="#method-c-zread">::zread</a></li>
+                                       
+                                       <li><a href="#method-c-zwrite">::zwrite</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">Stream</h1>
+
+               <div id="description">
+                       
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="open-method" class="method-detail ">
+                               <a name="method-c-open"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">open</span><span
+                                               class="method-args">(options, mode, stdio)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Open <a href="Biopieces.html">Biopieces</a> output data stream for reading
+from stdin or a file specified in options[:stream_in] OR writing to stdout
+or a file specified in options[:stream_out] or options[:data_out].
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="open-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 572</span>
+572:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">options</span>, <span class="ruby-identifier">mode</span>, <span class="ruby-identifier">stdio</span>)
+573:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;r&quot;</span>
+574:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:data_in</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:data_in</span>].<span class="ruby-identifier">first</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;-&quot;</span>
+575:         <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">nread</span>([<span class="ruby-value str">&quot;-&quot;</span>])
+576:       <span class="ruby-keyword kw">else</span>
+577:         <span class="ruby-identifier">$stdin</span>.<span class="ruby-identifier">tty?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">read</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:stream_in</span>]) <span class="ruby-operator">:</span> <span class="ruby-identifier">stdio</span>
+578:       <span class="ruby-keyword kw">end</span>
+579:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;w&quot;</span>
+580:       <span class="ruby-identifier">options</span>[<span class="ruby-value">:stream_out</span>] <span class="ruby-operator">?</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:stream_out</span>], <span class="ruby-identifier">options</span>[<span class="ruby-value">:compress</span>]) <span class="ruby-operator">:</span> <span class="ruby-identifier">stdio</span>
+581:     <span class="ruby-keyword kw">else</span>
+582:       <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Bad mode #{mode}&quot;</span>
+583:     <span class="ruby-keyword kw">end</span>
+584:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="private-class-method-details" class="method-section section">
+                       <h3 class="section-header">Private Class Methods</h3>
+
+               
+                       <div id="nread-method" class="method-detail ">
+                               <a name="method-c-nread"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">nread</span><span
+                                               class="method-args">(files)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Opens a list of files for reading and return an <em>io</em> object.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="nread-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 616</span>
+616:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">nread</span>(<span class="ruby-identifier">files</span>)
+617:     <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span> = <span class="ruby-constant">Open3</span>.<span class="ruby-identifier">popen3</span>(<span class="ruby-value str">&quot;cat &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>));
+618:     <span class="ruby-identifier">stdin</span>.<span class="ruby-identifier">close</span>
+619:     <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">close</span>
+620:     <span class="ruby-identifier">stdout</span>
+621:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="nwrite-method" class="method-detail ">
+                               <a name="method-c-nwrite"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">nwrite</span><span
+                                               class="method-args">(file)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Opens a file for writing and return an <em>io</em> object.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="nwrite-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 624</span>
+624:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">nwrite</span>(<span class="ruby-identifier">file</span>)
+625:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>)
+626:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="read-method" class="method-detail ">
+                               <a name="method-c-read"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">read</span><span
+                                               class="method-args">(files)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Opens a reads stream to a list of files.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="read-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 589</span>
+589:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">files</span>)
+590:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-comment cmt">#TODO case/when</span>
+591:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zipped?</span>(<span class="ruby-identifier">files</span>) <span class="ruby-operator">?</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zread</span>(<span class="ruby-identifier">files</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">nread</span>(<span class="ruby-identifier">files</span>)
+592:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="write-method" class="method-detail ">
+                               <a name="method-c-write"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">write</span><span
+                                               class="method-args">(file, zip=nil)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Opens a write stream to a file and returns a <em>io</em> object.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="write-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 595</span>
+595:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">zip</span>=<span class="ruby-keyword kw">nil</span>)
+596:     <span class="ruby-identifier">zip</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zwrite</span>(<span class="ruby-identifier">file</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">nwrite</span>(<span class="ruby-identifier">file</span>)
+597:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="zipped--method" class="method-detail ">
+                               <a name="method-c-zipped%3F"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">zipped?</span><span
+                                               class="method-args">(files)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Test if a list of files are gzipped or not. Raises if files are mixed
+zipped and unzipped.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="zipped--source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 630</span>
+630:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zipped?</span>(<span class="ruby-identifier">files</span>)
+631:     <span class="ruby-identifier">type_hash</span> = {}
+632: 
+633:     <span class="ruby-identifier">files</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
+634:       <span class="ruby-identifier">type</span> = <span class="ruby-node">`file #{file}`</span>
+635: 
+636:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/gzip compressed/</span>
+637:         <span class="ruby-identifier">type_hash</span>[<span class="ruby-value">:gzip</span>] = <span class="ruby-keyword kw">true</span>
+638:       <span class="ruby-keyword kw">else</span>
+639:         <span class="ruby-identifier">type_hash</span>[<span class="ruby-value">:ascii</span>] = <span class="ruby-keyword kw">true</span>
+640:       <span class="ruby-keyword kw">end</span>
+641:     <span class="ruby-keyword kw">end</span>
+642: 
+643:     <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Mixture of zipped and unzipped files&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type_hash</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
+644: 
+645:     <span class="ruby-identifier">type_hash</span>[<span class="ruby-value">:gzip</span>]
+646:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="zread-method" class="method-detail ">
+                               <a name="method-c-zread"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">zread</span><span
+                                               class="method-args">(files)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Opens a list of gzipped files for reading and return an <em>io</em> object.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="zread-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 600</span>
+600:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zread</span>(<span class="ruby-identifier">files</span>)
+601:     <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span> = <span class="ruby-constant">Open3</span>.<span class="ruby-identifier">popen3</span>(<span class="ruby-value str">&quot;zcat &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>));
+602:     <span class="ruby-identifier">stdin</span>.<span class="ruby-identifier">close</span>
+603:     <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">close</span>
+604:     <span class="ruby-identifier">stdout</span>
+605:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="zwrite-method" class="method-detail ">
+                               <a name="method-c-zwrite"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">zwrite</span><span
+                                               class="method-args">(file)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Opens a file for gzipped writing and return an <em>io</em> object.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="zwrite-source">
+<pre>
+     <span class="ruby-comment cmt"># File biopieces.rb, line 608</span>
+608:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zwrite</span>(<span class="ruby-identifier">file</span>)
+609:     <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span> = <span class="ruby-constant">Open3</span>.<span class="ruby-identifier">popen3</span>(<span class="ruby-node">&quot;gzip -f &gt; #{file}&quot;</span>)
+610:     <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">close</span>
+611:     <span class="ruby-identifier">stdout</span>.<span class="ruby-identifier">close</span>
+612:     <span class="ruby-identifier">stdin</span>
+613:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/String.html b/code_ruby/Maasha/lib/doc/String.html
new file mode 100644 (file)
index 0000000..61c0653
--- /dev/null
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: String</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./bits_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="bits.rb">bits.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">Object</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+                       <div id="method-list-section" class="section">
+                               <h3 class="section-header">Methods</h3>
+                               <ul class="link-list">
+                                       
+                                       <li><a href="#method-c-hamming_dist">::hamming_dist</a></li>
+                                       
+                                       <li><a href="#method-i-%26">#&</a></li>
+                                       
+                                       <li><a href="#method-i-%5E">#^</a></li>
+                                       
+                                       <li><a href="#method-i-%7C">#|</a></li>
+                                       
+                               </ul>
+                       </div>
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">String</h1>
+
+               <div id="description">
+                       <p>
+Monkey patching Class <a href="String.html">String</a> to add bitwise
+operators. Behaviour matching Perl&#8217;s: <a
+href="http://perldoc.perl.org/perlop.html#Bitwise-String-Operators">perldoc.perl.org/perlop.html#Bitwise-String-Operators</a>
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+               <div id="public-class-method-details" class="method-section section">
+                       <h3 class="section-header">Public Class Methods</h3>
+
+               
+                       <div id="hamming-dist-method" class="method-detail ">
+                               <a name="method-c-hamming_dist"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">hamming_dist</span><span
+                                               class="method-args">(str1, str2)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method to that returns the case senstive Hamming Distance between two
+strings. <a
+href="http://en.wikipedia.org/wiki/Hamming_distance">en.wikipedia.org/wiki/Hamming_distance</a>
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="hamming-dist-source">
+<pre>
+    <span class="ruby-comment cmt"># File bits.rb, line 34</span>
+34:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">hamming_dist</span>(<span class="ruby-identifier">str1</span>, <span class="ruby-identifier">str2</span>)
+35:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">StringError</span>, <span class="ruby-node">&quot;Uneven string lengths: #{str1.length} != #{str2.length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str1</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">str2</span>.<span class="ruby-identifier">length</span>
+36:     (<span class="ruby-identifier">str1</span> <span class="ruby-operator">^</span> <span class="ruby-identifier">str2</span> ).<span class="ruby-identifier">count</span>(<span class="ruby-value str">&quot;\x01-\xff&quot;</span>)
+37:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+               <div id="public-instance-method-details" class="method-section section">
+                       <h3 class="section-header">Public Instance Methods</h3>
+
+               
+                       <div id="--method" class="method-detail ">
+                               <a name="method-i-%26"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">&amp;</span><span
+                                               class="method-args">(str)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that performs bitwise AND operation where bits are copied if they
+exists in BOTH operands. If the operand sizes are different, the &amp;
+operator methods acts as though the longer operand were truncated to the
+length of the shorter.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="--source">
+<pre>
+    <span class="ruby-comment cmt"># File bits.rb, line 43</span>
+43:   <span class="ruby-keyword kw">def</span> &amp;(<span class="ruby-identifier">str</span>)
+44:     <span class="ruby-identifier">new</span> = <span class="ruby-value str">&quot;&quot;</span>
+45: 
+46:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> [<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>, <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">min</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+47:       <span class="ruby-identifier">new</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span> &amp; <span class="ruby-identifier">str</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span>)
+48:     <span class="ruby-keyword kw">end</span>
+49: 
+50:     <span class="ruby-identifier">new</span>
+51:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="--method" class="method-detail ">
+                               <a name="method-i-%5E"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">^</span><span
+                                               class="method-args">(str)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that performs bitwise XOR operation where bits are copied if they
+exists in ONE BUT NOT BOTH operands.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="--source">
+<pre>
+    <span class="ruby-comment cmt"># File bits.rb, line 77</span>
+77:   <span class="ruby-keyword kw">def</span> <span class="ruby-operator">^</span>(<span class="ruby-identifier">str</span>)
+78:     <span class="ruby-identifier">new</span> = <span class="ruby-value str">&quot;&quot;</span>
+79: 
+80:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> [<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>, <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">min</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+81:       <span class="ruby-identifier">new</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span> <span class="ruby-operator">^</span> <span class="ruby-identifier">str</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span>)
+82:     <span class="ruby-keyword kw">end</span>
+83: 
+84:     <span class="ruby-identifier">new</span>
+85:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+                       <div id="--method" class="method-detail ">
+                               <a name="method-i-%7C"></a>
+
+                               <div class="method-heading">
+                               
+                                       <span class="method-name">|</span><span
+                                               class="method-args">(str)</span>
+                                       <span class="method-click-advice">click to toggle source</span>
+                               
+                               </div>
+
+                               <div class="method-description">
+                                       
+                                       <p>
+Method that performs bitwise OR operation where bits are copied if they
+exists in EITHER operands. If the operand sizes differ, the shorter operand
+is extended with the terminal part of the longer operand.
+</p>
+                                       
+
+                                       
+                                       <div class="method-source-code"
+                                               id="--source">
+<pre>
+    <span class="ruby-comment cmt"># File bits.rb, line 57</span>
+57:   <span class="ruby-keyword kw">def</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">str</span>)
+58:     <span class="ruby-identifier">new</span> = <span class="ruby-value str">&quot;&quot;</span>
+59: 
+60:     <span class="ruby-identifier">min</span> = [<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>, <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">min</span>
+61: 
+62:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">min</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
+63:       <span class="ruby-identifier">new</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">str</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span>)
+64:     <span class="ruby-keyword kw">end</span>
+65: 
+66:     <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>
+67:       <span class="ruby-identifier">new</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">min</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>]
+68:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>
+69:       <span class="ruby-identifier">new</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span>[<span class="ruby-identifier">min</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>]
+70:     <span class="ruby-keyword kw">end</span>
+71: 
+72:     <span class="ruby-identifier">new</span>
+73:   <span class="ruby-keyword kw">end</span></pre>
+                                       </div>
+                                       
+                               </div>
+
+                               
+
+                               
+                       </div>
+
+               
+               </div>
+       
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/StringError.html b/code_ruby/Maasha/lib/doc/StringError.html
new file mode 100644 (file)
index 0000000..2151699
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>Class: StringError</title>
+
+       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+
+</head>
+<body class="class">
+
+       <div id="metadata">
+               <div id="home-metadata">
+                       <div id="home-section" class="section">
+        <h3 class="section-header">
+          <a href="./index.html">Home</a>
+          <a href="./index.html#classes">Classes</a>
+          <a href="./index.html#methods">Methods</a>
+        </h3>
+                       </div>
+               </div>
+
+               <div id="file-metadata">
+                       <div id="file-list-section" class="section">
+                               <h3 class="section-header">In Files</h3>
+                               <div class="section-body">
+                                       <ul>
+                                       
+                                               <li><a href="./bits_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
+                                                       class="thickbox" title="bits.rb">bits.rb</a></li>
+                                       
+                                       </ul>
+                               </div>
+                       </div>
+
+                       
+               </div>
+
+               <div id="class-metadata">
+
+                       <!-- Parent Class -->
+                       
+                       <div id="parent-class-section" class="section">
+                               <h3 class="section-header">Parent</h3>
+                               
+                               <p class="link">StandardError</p>
+                               
+                       </div>
+                       
+
+                       <!-- Namespace Contents -->
+                       
+
+                       <!-- Method Quickref -->
+                       
+
+                       <!-- Included Modules -->
+                       
+               </div>
+
+               <div id="project-metadata">
+                       
+                       
+
+                       <div id="classindex-section" class="section project-section">
+                               <h3 class="section-header">Class Index
+                                       <span class="search-toggle"><img src="./images/find.png"
+                                               height="16" width="16" alt="[+]"
+                                               title="show/hide quicksearch" /></span></h3>
+                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
+                               <fieldset>
+                                       <legend>Quicksearch</legend>
+                                       <input type="text" name="quicksearch" value=""
+                                               class="quicksearch-field" />
+                               </fieldset>
+                               </form>
+
+                               <ul class="link-list">
+                               
+                                       <li><a href="./Base36.html">Base36</a></li>
+                               
+                                       <li><a href="./Base36Error.html">Base36Error</a></li>
+                               
+                                       <li><a href="./Biopieces.html">Biopieces</a></li>
+                               
+                                       <li><a href="./BitArray.html">BitArray</a></li>
+                               
+                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
+                               
+                                       <li><a href="./Boulder.html">Boulder</a></li>
+                               
+                                       <li><a href="./BoulderError.html">BoulderError</a></li>
+                               
+                                       <li><a href="./CastError.html">CastError</a></li>
+                               
+                                       <li><a href="./Casts.html">Casts</a></li>
+                               
+                                       <li><a href="./Digest.html">Digest</a></li>
+                               
+                                       <li><a href="./DigestError.html">DigestError</a></li>
+                               
+                                       <li><a href="./Fasta.html">Fasta</a></li>
+                               
+                                       <li><a href="./FastaError.html">FastaError</a></li>
+                               
+                                       <li><a href="./Fastq.html">Fastq</a></li>
+                               
+                                       <li><a href="./FastqError.html">FastqError</a></li>
+                               
+                                       <li><a href="./Filesys.html">Filesys</a></li>
+                               
+                                       <li><a href="./FilesysError.html">FilesysError</a></li>
+                               
+                                       <li><a href="./Genbank.html">Genbank</a></li>
+                               
+                                       <li><a href="./GenbankError.html">GenbankError</a></li>
+                               
+                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
+                               
+                                       <li><a href="./Locator.html">Locator</a></li>
+                               
+                                       <li><a href="./LocatorError.html">LocatorError</a></li>
+                               
+                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
+                               
+                                       <li><a href="./Read.html">Read</a></li>
+                               
+                                       <li><a href="./SFF.html">SFF</a></li>
+                               
+                                       <li><a href="./SFFError.html">SFFError</a></li>
+                               
+                                       <li><a href="./Seq.html">Seq</a></li>
+                               
+                                       <li><a href="./SeqError.html">SeqError</a></li>
+                               
+                                       <li><a href="./Status.html">Status</a></li>
+                               
+                                       <li><a href="./Stream.html">Stream</a></li>
+                               
+                                       <li><a href="./String.html">String</a></li>
+                               
+                                       <li><a href="./StringError.html">StringError</a></li>
+                               
+                               </ul>
+                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
+                       </div>
+
+                       
+               </div>
+       </div>
+
+       <div id="documentation">
+               <h1 class="class">StringError</h1>
+
+               <div id="description">
+                       <p>
+Error class for all exceptions to do with <a href="String.html">String</a>.
+</p>
+
+               </div>
+
+               <!-- Constants -->
+               
+
+               <!-- Attributes -->
+               
+
+               <!-- Methods -->
+               
+
+       </div>
+
+
+       <div id="rdoc-debugging-section-dump" class="debugging-section">
+       
+               <p>Disabled; run with --debug to generate this.</p>
+       
+       </div>
+
+       <div id="validator-badges">
+               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
+                       Rdoc Generator</a> 1.1.6</small>.</p>
+       </div>
+
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/base36_rb.html b/code_ruby/Maasha/lib/doc/base36_rb.html
new file mode 100644 (file)
index 0000000..5b15245
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: base36.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-02-11 19:42:32 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2011 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/biopieces_rb.html b/code_ruby/Maasha/lib/doc/biopieces_rb.html
new file mode 100644 (file)
index 0000000..9757f4c
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: biopieces.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-03-19 09:14:44 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                                       <li>fileutils</li>
+                               
+                                       <li>date</li>
+                               
+                                       <li>optparse</li>
+                               
+                                       <li>open3</li>
+                               
+                                       <li>pp</li>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/bitarray_rb.html b/code_ruby/Maasha/lib/doc/bitarray_rb.html
new file mode 100644 (file)
index 0000000..bb50590
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: bitarray.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-03-17 15:02:03 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2007-2011 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/bits_rb.html b/code_ruby/Maasha/lib/doc/bits_rb.html
new file mode 100644 (file)
index 0000000..2380506
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: bits.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-03-08 11:37:57 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2007-2011 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/boulder_rb.html b/code_ruby/Maasha/lib/doc/boulder_rb.html
new file mode 100644 (file)
index 0000000..5416de3
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: boulder.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-03-19 09:17:13 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                                       <li>filesys</li>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2007-2011 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/digest_rb.html b/code_ruby/Maasha/lib/doc/digest_rb.html
new file mode 100644 (file)
index 0000000..22b22e5
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: digest.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-03-19 15:41:06 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                                       <li>seq</li>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2007-2011 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/fasta_rb.html b/code_ruby/Maasha/lib/doc/fasta_rb.html
new file mode 100644 (file)
index 0000000..1782158
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: fasta.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-03-19 09:11:06 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                                       <li>seq</li>
+                               
+                                       <li>filesys</li>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2007-2011 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/fastq_rb.html b/code_ruby/Maasha/lib/doc/fastq_rb.html
new file mode 100644 (file)
index 0000000..0d97142
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: fastq.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-03-19 09:09:52 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                                       <li>seq</li>
+                               
+                                       <li>filesys</li>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2007-2011 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/filesys_rb.html b/code_ruby/Maasha/lib/doc/filesys_rb.html
new file mode 100644 (file)
index 0000000..7d9ac37
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: filesys.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-03-18 22:13:22 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                                       <li>zlib</li>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2007-2011 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/genbank_rb.html b/code_ruby/Maasha/lib/doc/genbank_rb.html
new file mode 100644 (file)
index 0000000..7434343
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: genbank.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-03-19 09:19:25 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                                       <li>seq</li>
+                               
+                                       <li>filesys</li>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2007-2010 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/images/brick.png b/code_ruby/Maasha/lib/doc/images/brick.png
new file mode 100644 (file)
index 0000000..7851cf3
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/brick.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/brick_link.png b/code_ruby/Maasha/lib/doc/images/brick_link.png
new file mode 100644 (file)
index 0000000..9ebf013
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/brick_link.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/bug.png b/code_ruby/Maasha/lib/doc/images/bug.png
new file mode 100644 (file)
index 0000000..2d5fb90
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/bug.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/bullet_black.png b/code_ruby/Maasha/lib/doc/images/bullet_black.png
new file mode 100644 (file)
index 0000000..5761970
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/bullet_black.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/bullet_toggle_minus.png b/code_ruby/Maasha/lib/doc/images/bullet_toggle_minus.png
new file mode 100644 (file)
index 0000000..b47ce55
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/bullet_toggle_minus.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/bullet_toggle_plus.png b/code_ruby/Maasha/lib/doc/images/bullet_toggle_plus.png
new file mode 100644 (file)
index 0000000..9ab4a89
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/bullet_toggle_plus.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/date.png b/code_ruby/Maasha/lib/doc/images/date.png
new file mode 100644 (file)
index 0000000..783c833
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/date.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/find.png b/code_ruby/Maasha/lib/doc/images/find.png
new file mode 100644 (file)
index 0000000..1547479
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/find.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/loadingAnimation.gif b/code_ruby/Maasha/lib/doc/images/loadingAnimation.gif
new file mode 100644 (file)
index 0000000..82290f4
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/loadingAnimation.gif differ
diff --git a/code_ruby/Maasha/lib/doc/images/macFFBgHack.png b/code_ruby/Maasha/lib/doc/images/macFFBgHack.png
new file mode 100644 (file)
index 0000000..c6473b3
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/macFFBgHack.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/package.png b/code_ruby/Maasha/lib/doc/images/package.png
new file mode 100644 (file)
index 0000000..da3c2a2
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/package.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/page_green.png b/code_ruby/Maasha/lib/doc/images/page_green.png
new file mode 100644 (file)
index 0000000..de8e003
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/page_green.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/page_white_text.png b/code_ruby/Maasha/lib/doc/images/page_white_text.png
new file mode 100644 (file)
index 0000000..813f712
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/page_white_text.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/page_white_width.png b/code_ruby/Maasha/lib/doc/images/page_white_width.png
new file mode 100644 (file)
index 0000000..1eb8809
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/page_white_width.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/plugin.png b/code_ruby/Maasha/lib/doc/images/plugin.png
new file mode 100644 (file)
index 0000000..6187b15
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/plugin.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/ruby.png b/code_ruby/Maasha/lib/doc/images/ruby.png
new file mode 100644 (file)
index 0000000..f763a16
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/ruby.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/tag_green.png b/code_ruby/Maasha/lib/doc/images/tag_green.png
new file mode 100644 (file)
index 0000000..83ec984
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/tag_green.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/wrench.png b/code_ruby/Maasha/lib/doc/images/wrench.png
new file mode 100644 (file)
index 0000000..5c8213f
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/wrench.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/wrench_orange.png b/code_ruby/Maasha/lib/doc/images/wrench_orange.png
new file mode 100644 (file)
index 0000000..565a933
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/wrench_orange.png differ
diff --git a/code_ruby/Maasha/lib/doc/images/zoom.png b/code_ruby/Maasha/lib/doc/images/zoom.png
new file mode 100644 (file)
index 0000000..908612e
Binary files /dev/null and b/code_ruby/Maasha/lib/doc/images/zoom.png differ
diff --git a/code_ruby/Maasha/lib/doc/js/darkfish.js b/code_ruby/Maasha/lib/doc/js/darkfish.js
new file mode 100644 (file)
index 0000000..84565c1
--- /dev/null
@@ -0,0 +1,116 @@
+/**
+ *
+ * Darkfish Page Functions
+ * $Id: darkfish.js 53 2009-01-07 02:52:03Z deveiant $
+ *
+ * Author: Michael Granger <mgranger@laika.com>
+ *
+ */
+
+/* Provide console simulation for firebug-less environments */
+if (!("console" in window) || !("firebug" in console)) {
+    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
+    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
+
+    window.console = {};
+    for (var i = 0; i < names.length; ++i)
+        window.console[names[i]] = function() {};
+};
+
+
+/**
+ * Unwrap the first element that matches the given @expr@ from the targets and return them.
+ */
+$.fn.unwrap = function( expr ) {
+  return this.each( function() {
+     $(this).parents( expr ).eq( 0 ).after( this ).remove();
+  });
+};
+
+
+function showSource( e ) {
+       var target = e.target;
+       var codeSections = $(target).
+               parents('.method-detail').
+               find('.method-source-code');
+
+       $(target).
+               parents('.method-detail').
+               find('.method-source-code').
+               slideToggle();
+};
+
+function hookSourceViews() {
+       $('.method-description,.method-heading').click( showSource );
+};
+
+function toggleDebuggingSection() {
+       $('.debugging-section').slideToggle();
+};
+
+function hookDebuggingToggle() {
+       $('#debugging-toggle img').click( toggleDebuggingSection );
+};
+
+function hookQuickSearch() {
+       $('.quicksearch-field').each( function() {
+               var searchElems = $(this).parents('.section').find( 'li' );
+               var toggle = $(this).parents('.section').find('h3 .search-toggle');
+               // console.debug( "Toggle is: %o", toggle );
+               var qsbox = $(this).parents('form').get( 0 );
+
+               $(this).quicksearch( this, searchElems, {
+                       noSearchResultsIndicator: 'no-class-search-results',
+                       focusOnLoad: false
+               });
+               $(toggle).click( function() {
+                       // console.debug( "Toggling qsbox: %o", qsbox );
+                       $(qsbox).toggle();
+               });
+       });
+};
+
+function highlightTarget( anchor ) {
+       console.debug( "Highlighting target '%s'.", anchor );
+
+       $("a[name=" + anchor + "]").each( function() {
+               if ( !$(this).parent().parent().hasClass('target-section') ) {
+                       console.debug( "Wrapping the target-section" );
+                       $('div.method-detail').unwrap( 'div.target-section' );
+                       $(this).parent().wrap( '<div class="target-section"></div>' );
+               } else {
+                       console.debug( "Already wrapped." );
+               }
+       });
+};
+
+function highlightLocationTarget() {
+       console.debug( "Location hash: %s", window.location.hash );
+       if ( ! window.location.hash || window.location.hash.length == 0 ) return;
+
+       var anchor = window.location.hash.substring(1);
+       console.debug( "Found anchor: %s; matching %s", anchor, "a[name=" + anchor + "]" );
+
+       highlightTarget( anchor );
+};
+
+function highlightClickTarget( event ) {
+       console.debug( "Highlighting click target for event %o", event.target );
+       try {
+               var anchor = $(event.target).attr( 'href' ).substring(1);
+               console.debug( "Found target anchor: %s", anchor );
+               highlightTarget( anchor );
+       } catch ( err ) {
+               console.error( "Exception while highlighting: %o", err );
+       };
+};
+
+
+$(document).ready( function() {
+       hookSourceViews();
+       hookDebuggingToggle();
+       hookQuickSearch();
+       highlightLocationTarget();
+
+       $('ul.link-list a').bind( "click", highlightClickTarget );
+});
diff --git a/code_ruby/Maasha/lib/doc/js/jquery.js b/code_ruby/Maasha/lib/doc/js/jquery.js
new file mode 100644 (file)
index 0000000..afe9e74
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * jQuery 1.2.6 - New Wave Javascript
+ *
+ * Copyright (c) 2008 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2008-09-25 09:50:52 -0700 (Thu, 25 Sep 2008) $
+ * $Rev: 38 $
+ */
+(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
+return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
+return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
+selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
+return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
+this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
+return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
+jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
+script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
+for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
+for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
+jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
+ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
+while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
+while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
+for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
+jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
+xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
+jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
+for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
+s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
+e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
\ No newline at end of file
diff --git a/code_ruby/Maasha/lib/doc/js/quicksearch.js b/code_ruby/Maasha/lib/doc/js/quicksearch.js
new file mode 100644 (file)
index 0000000..70dbd33
--- /dev/null
@@ -0,0 +1,114 @@
+/**
+ *
+ * JQuery QuickSearch - Hook up a form field to hide non-matching elements.
+ * $Id: quicksearch.js 53 2009-01-07 02:52:03Z deveiant $
+ *
+ * Author: Michael Granger <mgranger@laika.com>
+ *
+ */
+jQuery.fn.quicksearch = function( target, searchElems, options ) {
+       // console.debug( "Quicksearch fn" );
+
+       var settings = {
+               delay: 250,
+               clearButton: false,
+               highlightMatches: false,
+               focusOnLoad: false,
+               noSearchResultsIndicator: null
+       };
+       if ( options ) $.extend( settings, options );
+
+       return jQuery(this).each( function() {
+               // console.debug( "Creating a new quicksearch on %o for %o", this, searchElems );
+               new jQuery.quicksearch( this, searchElems, settings );
+       });
+};
+
+
+jQuery.quicksearch = function( searchBox, searchElems, settings ) {
+       var timeout;
+       var boxdiv = $(searchBox).parents('div').eq(0);
+
+       function init() {
+               setupKeyEventHandlers();
+               focusOnLoad();
+       };
+
+       function setupKeyEventHandlers() {
+               // console.debug( "Hooking up the 'keypress' event to %o", searchBox );
+               $(searchBox).
+                       unbind( 'keyup' ).
+                       keyup( function(e) { return onSearchKey( e.keyCode ); });
+               $(searchBox).
+                       unbind( 'keypress' ).
+                       keypress( function(e) {
+                               switch( e.which ) {
+                                       // Execute the search on Enter, Tab, or Newline
+                                       case 9:
+                                       case 13:
+                                       case 10:
+                                               clearTimeout( timeout );
+                                               e.preventDefault();
+                                               doQuickSearch();
+                                               break;
+
+                                       // Allow backspace
+                                       case 8:
+                                               return true;
+                                               break;
+
+                                       // Only allow valid search characters
+                                       default:
+                                               return validQSChar( e.charCode );
+                               }
+                       });
+       };
+
+       function focusOnLoad() {
+               if ( !settings.focusOnLoad ) return false;
+               $(searchBox).focus();
+       };
+
+       function onSearchKey ( code ) {
+               clearTimeout( timeout );
+               // console.debug( "...scheduling search." );
+               timeout = setTimeout( doQuickSearch, settings.delay );
+       };
+
+       function validQSChar( code ) {
+               var c = String.fromCharCode( code );
+               return (
+                       (c == ':') ||
+                       (c >= 'a' && c <= 'z') ||
+                       (c >= 'A' && c <= 'Z')
+                 );
+       };
+
+       function doQuickSearch() {
+               var searchText = searchBox.value;
+               var pat = new RegExp( searchText, "im" );
+               var shownCount = 0;
+
+               if ( settings.noSearchResultsIndicator ) {
+                       $('#' + settings.noSearchResultsIndicator).hide();
+               }
+
+               // All elements start out hidden
+               $(searchElems).each( function(index) {
+                       var str = $(this).text();
+
+                       if ( pat.test(str) ) {
+                               shownCount += 1;
+                               $(this).fadeIn();
+                       } else {
+                               $(this).hide();
+                       }
+               });
+
+               if ( shownCount == 0 && settings.noSearchResultsIndicator ) {
+                       $('#' + settings.noSearchResultsIndicator).slideDown();
+               }
+       };
+
+       init();
+};
diff --git a/code_ruby/Maasha/lib/doc/js/thickbox-compressed.js b/code_ruby/Maasha/lib/doc/js/thickbox-compressed.js
new file mode 100644 (file)
index 0000000..3a3fdae
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+ * Thickbox 3 - One Box To Rule Them All.
+ * By Cody Lindley (http://www.codylindley.com)
+ * Copyright (c) 2007 cody lindley
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
+*/
+
+var tb_pathToImage = "../images/loadingAnimation.gif";
+
+eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(o).2S(9(){1u(\'a.18, 3n.18, 3i.18\');1w=1p 1t();1w.L=2H});9 1u(b){$(b).s(9(){6 t=X.Q||X.1v||M;6 a=X.u||X.23;6 g=X.1N||P;19(t,a,g);X.2E();H P})}9 19(d,f,g){3m{3(2t o.v.J.2i==="2g"){$("v","11").r({A:"28%",z:"28%"});$("11").r("22","2Z");3(o.1Y("1F")===M){$("v").q("<U 5=\'1F\'></U><4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}3(1K()){$("#B").1J("2B")}n{$("#B").1J("2z")}3(d===M){d=""}$("v").q("<4 5=\'K\'><1I L=\'"+1w.L+"\' /></4>");$(\'#K\').2y();6 h;3(f.O("?")!==-1){h=f.3l(0,f.O("?"))}n{h=f}6 i=/\\.2s$|\\.2q$|\\.2m$|\\.2l$|\\.2k$/;6 j=h.1C().2h(i);3(j==\'.2s\'||j==\'.2q\'||j==\'.2m\'||j==\'.2l\'||j==\'.2k\'){1D="";1G="";14="";1z="";1x="";R="";1n="";1r=P;3(g){E=$("a[@1N="+g+"]").36();25(D=0;((D<E.1c)&&(R===""));D++){6 k=E[D].u.1C().2h(i);3(!(E[D].u==f)){3(1r){1z=E[D].Q;1x=E[D].u;R="<1e 5=\'1X\'>&1d;&1d;<a u=\'#\'>2T &2R;</a></1e>"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;<a u=\'#\'>&2O; 2N</a></1e>"}}n{1r=1b;1n="1t "+(D+1)+" 2L "+(E.1c)}}}S=1p 1t();S.1g=9(){S.1g=M;6 a=2x();6 x=a[0]-1M;6 y=a[1]-1M;6 b=S.z;6 c=S.A;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}13=b+30;1a=c+2G;$("#8").q("<a u=\'\' 5=\'1L\' Q=\'1o\'><1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/></a>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"</4></4><4 5=\'2A\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4>");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1z,1x,g);H P}$("#1X").s(1i)}o.1h=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}n 3(I==3k){3(!(R=="")){o.1h="";1i()}}n 3(I==3j){3(!(14=="")){o.1h="";12()}}};16();$("#K").C();$("#1L").s(G);$("#8").r({Y:"T"})};S.L=f}n{6 l=f.2r(/^[^\\?]+\\??/,\'\');6 m=2p(l);13=(m[\'z\']*1)+30||3h;1a=(m[\'A\']*1)+3g||3f;W=13-30;V=1a-3e;3(f.O(\'2j\')!=-1){1E=f.1B(\'3d\');$("#15").C();3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4></4><U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\' > </U>")}n{$("#B").N();$("#8").q("<U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\'> </U>")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\'>1l</a> 1k 1j 1s</4></4><4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'></4>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'></4>")}}n{$("#F")[0].J.z=W+"p";$("#F")[0].J.A=V+"p";$("#F")[0].3a=0;$("#1H").11(d)}}$("#Z").s(G);3(f.O(\'37\')!=-1){$("#F").q($(\'#\'+m[\'26\']).1T());$("#8").24(9(){$(\'#\'+m[\'26\']).q($("#F").1T())});16();$("#K").C();$("#8").r({Y:"T"})}n 3(f.O(\'2j\')!=-1){16();3($.1q.35){$("#K").C();$("#8").r({Y:"T"})}}n{$("#F").34(f+="&1y="+(1p 33().32()),9(){16();$("#K").C();1u("#F a.18");$("#8").r({Y:"T"})})}}3(!m[\'1A\']){o.21=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}}}}31(e){}}9 1m(){$("#K").C();$("#8").r({Y:"T"})}9 G(){$("#2Y").N("s");$("#Z").N("s");$("#8").2X("2W",9(){$(\'#8,#B,#1F\').2V("24").N().C()});$("#K").C();3(2t o.v.J.2i=="2g"){$("v","11").r({A:"1Z",z:"1Z"});$("11").r("22","")}o.1h="";o.21="";H P}9 16(){$("#8").r({2U:\'-\'+20((13/2),10)+\'p\',z:13+\'p\'});3(!(1V.1q.2Q&&1V.1q.2P<7)){$("#8").r({38:\'-\'+20((1a/2),10)+\'p\'})}}9 2p(a){6 b={};3(!a){H b}6 c=a.1B(/[;&]/);25(6 i=0;i<c.1c;i++){6 d=c[i].1B(\'=\');3(!d||d.1c!=2){39}6 e=2a(d[0]);6 f=2a(d[1]);f=f.2r(/\\+/g,\' \');b[e]=f}H b}9 2x(){6 a=o.2M;6 w=1S.2o||1R.2o||(a&&a.1Q)||o.v.1Q;6 h=1S.1P||1R.1P||(a&&a.2n)||o.v.2n;1O=[w,h];H 1O}9 1K(){6 a=2K.2J.1C();3(a.O(\'2I\')!=-1&&a.O(\'3o\')!=-1){H 1b}}',62,211,'|||if|div|id|var||TB_window|function||||||||||||||else|document|px|append|css|click||href|body||||width|height|TB_overlay|remove|TB_Counter|TB_TempArray|TB_ajaxContent|tb_remove|return|keycode|style|TB_load|src|null|unbind|indexOf|false|title|TB_NextHTML|imgPreloader|block|iframe|ajaxContentH|ajaxContentW|this|display|TB_closeWindowButton||html|goPrev|TB_WIDTH|TB_PrevHTML|TB_iframeContent|tb_position||thickbox|tb_show|TB_HEIGHT|true|length|nbsp|span|Math|onload|onkeydown|goNext|Esc|or|close|tb_showIframe|TB_imageCount|Close|new|browser|TB_FoundURL|Key|Image|tb_init|name|imgLoader|TB_NextURL|random|TB_NextCaption|modal|split|toLowerCase|TB_PrevCaption|urlNoQuery|TB_HideSelect|TB_PrevURL|TB_ajaxWindowTitle|img|addClass|tb_detectMacXFF|TB_ImageOff|150|rel|arrayPageSize|innerHeight|clientWidth|self|window|children|TB_prev|jQuery|frameborder|TB_next|getElementById|auto|parseInt|onkeyup|overflow|alt|unload|for|inlineId||100||unescape|1000|round|hspace|TB_closeAjaxWindow|TB_title|undefined|match|maxHeight|TB_iframe|bmp|gif|png|clientHeight|innerWidth|tb_parseQuery|jpeg|replace|jpg|typeof|which|keyCode|event|tb_getPageSize|show|TB_overlayBG|TB_closeWindow|TB_overlayMacFFBGHack|TB_secondLine|TB_caption|blur|TB_Image|60|tb_pathToImage|mac|userAgent|navigator|of|documentElement|Prev|lt|version|msie|gt|ready|Next|marginLeft|trigger|fast|fadeOut|TB_imageOff|hidden||catch|getTime|Date|load|safari|get|TB_inline|marginTop|continue|scrollTop|TB_modal|class|TB_|45|440|40|630|input|188|190|substr|try|area|firefox'.split('|'),0,{}))
\ No newline at end of file
diff --git a/code_ruby/Maasha/lib/doc/rdoc.css b/code_ruby/Maasha/lib/doc/rdoc.css
new file mode 100644 (file)
index 0000000..ffe9960
--- /dev/null
@@ -0,0 +1,706 @@
+/*
+ * "Darkfish" Rdoc CSS
+ * $Id: rdoc.css 54 2009-01-27 01:09:48Z deveiant $
+ *
+ * Author: Michael Granger <ged@FaerieMUD.org>
+ *
+ */
+
+/* Base Green is: #6C8C22 */
+
+*{ padding: 0; margin: 0; }
+
+body {
+  background: #efefef;
+       font: 14px "Helvetica Neue", Helvetica, Tahoma, sans-serif;
+}
+body.class, body.module, body.file {
+    margin-left: 40px;
+}
+body.file-popup {
+       font-size: 90%;
+       margin-left: 0;
+}
+
+h1 {
+       font-size: 300%;
+       text-shadow: rgba(135,145,135,0.65) 2px 2px 3px;
+       color: #6C8C22;
+}
+h2,h3,h4 { margin-top: 1.5em; }
+
+:link,
+:visited {
+       color: #6C8C22;
+       text-decoration: none;
+}
+:link:hover,
+:visited:hover {
+       border-bottom: 1px dotted #6C8C22;
+}
+
+pre {
+       background: #ddd;
+       padding: 0.5em 0;
+}
+
+
+/* @group Generic Classes */
+
+.initially-hidden {
+       display: none;
+}
+
+.quicksearch-field {
+       width: 98%;
+       background: #ddd;
+       border: 1px solid #aaa;
+       height: 1.5em;
+       -webkit-border-radius: 4px;
+}
+.quicksearch-field:focus {
+       background: #f1edba;
+}
+
+.missing-docs {
+       font-size: 120%;
+       background: white url(images/wrench_orange.png) no-repeat 4px center;
+       color: #ccc;
+       line-height: 2em;
+       border: 1px solid #d00;
+       opacity: 1;
+       padding-left: 20px;
+       text-indent: 24px;
+       letter-spacing: 3px;
+       font-weight: bold;
+       -webkit-border-radius: 5px;
+       -moz-border-radius: 5px;
+}
+
+.target-section {
+       border: 2px solid #dcce90;
+       border-left-width: 8px;
+       padding: 0 1em;
+       background: #fff3c2;
+}
+
+/* @end */
+
+
+/* @group Index Page, Standalone file pages */
+body.indexpage {
+       margin: 1em 3em;
+}
+body.indexpage p,
+body.indexpage div,
+body.file p {
+       margin: 1em 0;
+}
+
+.indexpage ul,
+.file #documentation ul {
+       line-height: 160%;
+       list-style: none;
+}
+.indexpage ul :link,
+.indexpage ul :visited {
+       font-size: 16px;
+}
+
+.indexpage li,
+.file #documentation li {
+       padding-left: 20px;
+       background: url(images/bullet_black.png) no-repeat left 4px;
+}
+.indexpage li.module {
+       background: url(images/package.png) no-repeat left 4px;
+}
+.indexpage li.class {
+       background: url(images/ruby.png) no-repeat left 4px;
+}
+.indexpage li.file {
+       background: url(images/page_white_text.png) no-repeat left 4px;
+}
+.file li p,
+.indexpage li p {
+  margin: 0 0;
+}
+
+/* @end */
+
+/* @group Top-Level Structure */
+
+.class #metadata,
+.file #metadata,
+.module #metadata {
+       float: left;
+       width: 260px;
+}
+
+.class #documentation,
+.file #documentation,
+.module #documentation {
+       margin: 2em 1em 5em 300px;
+       min-width: 340px;
+}
+
+.file #metadata {
+       margin: 0.8em;
+}
+
+#validator-badges {
+       clear: both;
+       margin: 1em 1em 2em;
+}
+
+/* @end */
+
+/* @group Metadata Section */
+#metadata .section {
+       background-color: #dedede;
+       -moz-border-radius: 5px;
+       -webkit-border-radius: 5px;
+       border: 1px solid #aaa;
+       margin: 0 8px 16px;
+       font-size: 90%;
+       overflow: hidden;
+}
+#metadata h3.section-header {
+       margin: 0;
+       padding: 2px 8px;
+       background: #ccc;
+       color: #666;
+       -moz-border-radius-topleft: 4px;
+       -moz-border-radius-topright: 4px;
+       -webkit-border-top-left-radius: 4px;
+       -webkit-border-top-right-radius: 4px;
+       border-bottom: 1px solid #aaa;
+}
+#metadata #home-section h3.section-header {
+  border-bottom: 0;
+}
+
+#metadata ul,
+#metadata dl,
+#metadata p {
+       padding:  8px;
+       list-style: none;
+}
+
+#file-metadata ul {
+       padding-left: 28px;
+       list-style-image: url(images/page_green.png);
+}
+
+dl.svninfo {
+       color: #666;
+       margin: 0;
+}
+dl.svninfo dt {
+       font-weight: bold;
+}
+
+ul.link-list li {
+       white-space: nowrap;
+}
+ul.link-list .type {
+       font-size: 8px;
+       text-transform: uppercase;
+       color: white;
+       background: #969696;
+       padding: 2px 4px;
+       -webkit-border-radius: 5px;
+}
+
+/* @end */
+
+
+/* @group Project Metadata Section */
+#project-metadata {
+       margin-top: 3em;
+}
+
+.file #project-metadata {
+  margin-top: 0em;
+}
+
+#project-metadata .section {
+       border: 1px solid #aaa;
+}
+#project-metadata h3.section-header {
+       border-bottom: 1px solid #aaa;
+       position: relative;
+}
+#project-metadata h3.section-header .search-toggle {
+       position: absolute;
+       right: 5px;
+}
+
+
+#project-metadata form {
+       color: #777;
+       background: #ccc;
+       padding: 8px 8px 16px;
+       border-bottom: 1px solid #bbb;
+}
+#project-metadata fieldset {
+       border: 0;
+}
+
+#no-class-search-results {
+       margin: 0 auto 1em;
+       text-align: center;
+       font-size: 14px;
+       font-weight: bold;
+       color: #aaa;
+}
+
+/* @end */
+
+
+/* @group Documentation Section */
+#description {
+       font-size: 100%;
+       color: #333;
+}
+
+#description p {
+       margin: 1em 0.4em;
+}
+
+#description li p {
+  margin: 0;
+}
+
+#description ul {
+       margin-left: 1.5em;
+}
+#description ul li {
+       line-height: 1.4em;
+}
+
+#description dl,
+#documentation dl {
+       margin: 8px 1.5em;
+       border: 1px solid #ccc;
+}
+#description dl {
+       font-size: 14px;
+}
+
+#description dt,
+#documentation dt {
+       padding: 2px 4px;
+       font-weight: bold;
+       background: #ddd;
+}
+#description dd,
+#documentation dd  {
+       padding: 2px 12px;
+}
+#description dd + dt,
+#documentation dd + dt {
+       margin-top: 0.7em;
+}
+
+#documentation .section {
+       font-size: 90%;
+}
+#documentation h3.section-header {
+       margin-top: 2em;
+       padding: 0.75em 0.5em;
+       background-color: #dedede;
+       color: #333;
+       font-size: 150%;
+       border: 1px solid #bbb;
+       -moz-border-radius: 3px;
+       -webkit-border-radius: 3px;
+}
+
+#constants-list > dl,
+#attributes-list > dl {
+       margin: 1em 0 2em;
+       border: 0;
+}
+#constants-list > dl dt,
+#attributes-list > dl dt {
+       padding-left: 0;
+       font-weight: bold;
+       font-family: Monaco, "Andale Mono";
+       background: inherit;
+}
+#constants-list > dl dt a,
+#attributes-list > dl dt a {
+       color: inherit;
+}
+#constants-list > dl dd,
+#attributes-list > dl dd {
+       margin: 0 0 1em 0;
+       padding: 0;
+       color: #666;
+}
+
+/* @group Method Details */
+
+#documentation .method-source-code {
+       display: none;
+}
+
+#documentation .method-detail {
+       margin: 0.5em 0;
+       padding: 0.5em 0;
+       cursor: pointer;
+}
+#documentation .method-detail:hover {
+       background-color: #f1edba;
+}
+#documentation .method-heading {
+       position: relative;
+       padding: 2px 4px 0 20px;
+       font-size: 125%;
+       font-weight: bold;
+       color: #333;
+       background: url(images/brick.png) no-repeat left bottom;
+}
+#documentation .method-heading :link,
+#documentation .method-heading :visited {
+       color: inherit;
+}
+#documentation .method-click-advice {
+       position: absolute;
+       top: 2px;
+       right: 5px;
+       font-size: 10px;
+       color: #9b9877;
+       visibility: hidden;
+       padding-right: 20px;
+       line-height: 20px;
+       background: url(images/zoom.png) no-repeat right top;
+}
+#documentation .method-detail:hover .method-click-advice {
+       visibility: visible;
+}
+
+#documentation .method-alias .method-heading {
+       color: #666;
+       background: url(images/brick_link.png) no-repeat left bottom;
+}
+
+#documentation .method-description,
+#documentation .aliases {
+       margin: 0 20px;
+       line-height: 1.2em;
+       color: #666;
+}
+#documentation .aliases {
+       padding-top: 4px;
+       font-style: italic;
+       cursor: default;
+}
+#documentation .method-description p {
+       padding: 0;
+}
+#documentation .method-description p + p {
+       margin-bottom: 0.5em;
+}
+#documentation .method-description ul {
+  margin-left: 1.5em;
+}
+
+#documentation .attribute-method-heading {
+       background: url(images/tag_green.png) no-repeat left bottom;
+}
+#documentation #attribute-method-details .method-detail:hover {
+       background-color: transparent;
+       cursor: default;
+}
+#documentation .attribute-access-type {
+       font-size: 60%;
+       text-transform: uppercase;
+       vertical-align: super;
+       padding: 0 2px;
+}
+/* @end */
+
+/* @end */
+
+
+
+/* @group Source Code */
+
+div.method-source-code {
+    background: #262626;
+    color: #efefef;
+    margin: 1em;
+    padding: 0.5em;
+    border: 1px dashed #999;
+    overflow: hidden;
+}
+
+div.method-source-code pre {
+       background: inherit;
+       padding: 0;
+       color: white;
+       overflow: auto;
+}
+
+/* @group Ruby keyword styles */
+
+.ruby-constant   { color: #7fffd4; background: transparent; }
+.ruby-keyword    { color: #00ffff; background: transparent; }
+.ruby-ivar       { color: #eedd82; background: transparent; }
+.ruby-operator   { color: #00ffee; background: transparent; }
+.ruby-identifier { color: #ffdead; background: transparent; }
+.ruby-node       { color: #ffa07a; background: transparent; }
+.ruby-comment    { color: #b22222; font-weight: bold; background: transparent; }
+.ruby-regexp     { color: #ffa07a; background: transparent; }
+.ruby-value      { color: #7fffd4; background: transparent; }
+
+/* @end */
+/* @end */
+
+
+/* @group File Popup Contents */
+
+.file #metadata,
+.file-popup #metadata {
+}
+
+.file-popup dl {
+       font-size: 80%;
+       padding: 0.75em;
+       background-color: #dedede;
+       color: #333;
+       border: 1px solid #bbb;
+       -moz-border-radius: 3px;
+       -webkit-border-radius: 3px;
+}
+.file dt {
+       font-weight: bold;
+       padding-left: 22px;
+       line-height: 20px;
+       background: url(images/page_white_width.png) no-repeat left top;
+}
+.file dt.modified-date {
+       background: url(images/date.png) no-repeat left top;
+}
+.file dt.requires {
+       background: url(images/plugin.png) no-repeat left top;
+}
+.file dt.scs-url {
+       background: url(images/wrench.png) no-repeat left top;
+}
+
+.file dl dd {
+       margin: 0 0 1em 0;
+}
+.file #metadata dl dd ul {
+       list-style: circle;
+       margin-left: 20px;
+       padding-top: 0;
+}
+.file #metadata dl dd ul li {
+}
+
+
+.file h2 {
+       margin-top: 2em;
+       padding: 0.75em 0.5em;
+       background-color: #dedede;
+       color: #333;
+       font-size: 120%;
+       border: 1px solid #bbb;
+       -moz-border-radius: 3px;
+       -webkit-border-radius: 3px;
+}
+
+/* @end */
+
+
+
+
+/* @group ThickBox Styles */
+#TB_window {
+       font: 12px Arial, Helvetica, sans-serif;
+       color: #333333;
+}
+
+#TB_secondLine {
+       font: 10px Arial, Helvetica, sans-serif;
+       color:#666666;
+}
+
+#TB_window :link,
+#TB_window :visited        { color: #666666; }
+#TB_window :link:hover,
+#TB_window :visited:hover  { color: #000;    }
+#TB_window :link:active,
+#TB_window :visited:active { color: #666666; }
+#TB_window :link:focus,
+#TB_window :visited:focus  { color: #666666; }
+
+#TB_overlay {
+       position: fixed;
+       z-index:100;
+       top: 0px;
+       left: 0px;
+       height:100%;
+       width:100%;
+}
+
+.TB_overlayMacFFBGHack {background: url(images/macFFBgHack.png) repeat;}
+.TB_overlayBG {
+       background-color:#000;
+       filter:alpha(opacity=75);
+       -moz-opacity: 0.75;
+       opacity: 0.75;
+}
+
+* html #TB_overlay { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_window {
+       position: fixed;
+       background: #ffffff;
+       z-index: 102;
+       color:#000000;
+       display:none;
+       border: 4px solid #525252;
+       text-align:left;
+       top:50%;
+       left:50%;
+}
+
+* html #TB_window { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_window img#TB_Image {
+       display:block;
+       margin: 15px 0 0 15px;
+       border-right: 1px solid #ccc;
+       border-bottom: 1px solid #ccc;
+       border-top: 1px solid #666;
+       border-left: 1px solid #666;
+}
+
+#TB_caption{
+       height:25px;
+       padding:7px 30px 10px 25px;
+       float:left;
+}
+
+#TB_closeWindow{
+       height:25px;
+       padding:11px 25px 10px 0;
+       float:right;
+}
+
+#TB_closeAjaxWindow{
+       padding:7px 10px 5px 0;
+       margin-bottom:1px;
+       text-align:right;
+       float:right;
+}
+
+#TB_ajaxWindowTitle{
+       float:left;
+       padding:7px 0 5px 10px;
+       margin-bottom:1px;
+       font-size: 22px;
+}
+
+#TB_title{
+       background-color: #6C8C22;
+       color: #dedede;
+       height:40px;
+}
+#TB_title :link,
+#TB_title :visited {
+       color: white !important;
+       border-bottom: 1px dotted #dedede;
+}
+
+#TB_ajaxContent{
+       clear:both;
+       padding:2px 15px 15px 15px;
+       overflow:auto;
+       text-align:left;
+       line-height:1.4em;
+}
+
+#TB_ajaxContent.TB_modal{
+       padding:15px;
+}
+
+#TB_ajaxContent p{
+       padding:5px 0px 5px 0px;
+}
+
+#TB_load{
+       position: fixed;
+       display:none;
+       height:13px;
+       width:208px;
+       z-index:103;
+       top: 50%;
+       left: 50%;
+       margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
+}
+
+* html #TB_load { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_HideSelect{
+       z-index:99;
+       position:fixed;
+       top: 0;
+       left: 0;
+       background-color:#fff;
+       border:none;
+       filter:alpha(opacity=0);
+       -moz-opacity: 0;
+       opacity: 0;
+       height:100%;
+       width:100%;
+}
+
+* html #TB_HideSelect { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_iframeContent{
+       clear:both;
+       border:none;
+       margin-bottom:-1px;
+       margin-top:1px;
+       _margin-bottom:1px;
+}
+
+/* @end */
+
+/* @group Debugging Section */
+
+#debugging-toggle {
+       text-align: center;
+}
+#debugging-toggle img {
+       cursor: pointer;
+}
+
+#rdoc-debugging-section-dump {
+       display: none;
+       margin: 0 2em 2em;
+       background: #ccc;
+       border: 1px solid #999;
+}
+
+
+
+/* @end */
diff --git a/code_ruby/Maasha/lib/doc/seq_rb.html b/code_ruby/Maasha/lib/doc/seq_rb.html
new file mode 100644 (file)
index 0000000..3c50f10
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: seq.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-03-19 16:29:08 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                                       <li>amatch</li>
+                               
+                                       <li>digest</li>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2007-2011 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+
diff --git a/code_ruby/Maasha/lib/doc/sff_rb.html b/code_ruby/Maasha/lib/doc/sff_rb.html
new file mode 100644 (file)
index 0000000..294f9a0
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+       <title>File: sff.rb [RDoc Documentation]</title>
+
+       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
+
+       <script src="./js/jquery.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/thickbox-compressed.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/quicksearch.js" type="text/javascript"
+               charset="utf-8"></script>
+       <script src="./js/darkfish.js" type="text/javascript"
+               charset="utf-8"></script>
+</head>
+
+<body class="file file-popup">
+       <div id="metadata">
+               <dl>
+                       <dt class="modified-date">Last Modified</dt>
+                       <dd class="modified-date">2011-02-11 19:55:38 +0100</dd>
+
+                       
+                       <dt class="requires">Requires</dt>
+                       <dd class="requires">
+                               <ul>
+                               
+                                       <li>base36</li>
+                               
+                               </ul>
+                       </dd>
+                       
+
+                       
+               </dl>
+       </div>
+
+       <div id="documentation">
+               
+               <div class="description">
+                       <h2>Description</h2>
+                       <p>
+Copyright (C) 2011 Martin A. Hansen.
+</p>
+
+               </div>
+               
+       </div>
+</body>
+</html>
+