<div class="name-list">
- <a href="#M000033">each</a>
+ <a href="#M000003">close</a>
- <a href="#M000034">get_entry</a>
+ <a href="#M000004">each</a>
- <a href="#M000032">new</a>
+ <a href="#M000005">get_entry</a>
- <a href="#M000031">open</a>
+ <a href="#M000002">new</a>
+
+ <a href="#M000001">open</a>
</div>
</div>
<h3 class="section-bar">Public Class methods</h3>
- <div id="method-M000032" class="method-detail">
- <a name="M000032"></a>
+ <div id="method-M000002" class="method-detail">
+ <a name="M000002"></a>
<div class="method-heading">
- <a href="Fasta.src/M000032.html" target="Code" class="method-signature"
- onclick="popupCode('Fasta.src/M000032.html');return false;">
+ <a href="Fasta.src/M000002.html" target="Code" class="method-signature"
+ onclick="popupCode('Fasta.src/M000002.html');return false;">
<span class="method-name">new</span><span class="method-args">(io, type=nil)</span>
</div>
- <div id="method-M000031" class="method-detail">
- <a name="M000031"></a>
+ <div id="method-M000001" class="method-detail">
+ <a name="M000001"></a>
<div class="method-heading">
- <a href="Fasta.src/M000031.html" target="Code" class="method-signature"
- onclick="popupCode('Fasta.src/M000031.html');return false;">
+ <a href="Fasta.src/M000001.html" target="Code" class="method-signature"
+ onclick="popupCode('Fasta.src/M000001.html');return false;">
- <span class="method-name">open</span><span class="method-args">(*args) {|fasta| ...}</span>
+ <span class="method-name">open</span><span class="method-args">(*args) {|ios| ...}</span>
</a>
<div class="method-description">
<p>
-Class method allowing open to be used on files. See File.open.
+Class method allowing open to be used on (zipped) files. See File.open.
</p>
</div>
<h3 class="section-bar">Public Instance methods</h3>
- <div id="method-M000033" class="method-detail">
- <a name="M000033"></a>
+ <div id="method-M000003" class="method-detail">
+ <a name="M000003"></a>
+
+ <div class="method-heading">
+
+ <a href="Fasta.src/M000003.html" target="Code" class="method-signature"
+ onclick="popupCode('Fasta.src/M000003.html');return false;">
+
+ <span class="method-name">close</span><span class="method-args">()</span>
+
+ </a>
+
+ </div>
+
+ <div class="method-description">
+
+ <p>
+Method to close ios.
+</p>
+
+ </div>
+ </div>
+
+
+ <div id="method-M000004" class="method-detail">
+ <a name="M000004"></a>
<div class="method-heading">
- <a href="Fasta.src/M000033.html" target="Code" class="method-signature"
- onclick="popupCode('Fasta.src/M000033.html');return false;">
+ <a href="Fasta.src/M000004.html" target="Code" class="method-signature"
+ onclick="popupCode('Fasta.src/M000004.html');return false;">
<span class="method-name">each</span><span class="method-args">() {|entry| ...}</span>
</div>
- <div id="method-M000034" class="method-detail">
- <a name="M000034"></a>
+ <div id="method-M000005" class="method-detail">
+ <a name="M000005"></a>
<div class="method-heading">
- <a href="Fasta.src/M000034.html" target="Code" class="method-signature"
- onclick="popupCode('Fasta.src/M000034.html');return false;">
+ <a href="Fasta.src/M000005.html" target="Code" class="method-signature"
+ onclick="popupCode('Fasta.src/M000005.html');return false;">
<span class="method-name">get_entry</span><span class="method-args">()</span>
<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.
+Method to get the next FASTA entry form an ios and return this as a Seq
+object. If no entry is found or eof then nil is returned.
</p>
</div>
-Tue, 17 Aug 2010 15:43:49 +0200
+Wed, 18 Aug 2010 21:48:07 +0200
</tr>
<tr class="top-aligned-row">
<td><strong>Last Update:</strong></td>
- <td>2010-08-17 15:43:01 +0200</td>
+ <td>2010-08-18 21:33:24 +0200</td>
</tr>
</table>
</div>
<div class="name-list">
- <a href="seq_rb.html">seq</a>
+ seq
+
+ zlib
</div>
</div>
<h1 class="section-bar">Classes</h1>
<div id="index-entries">
- <a href="classes/Biopieces.html">Biopieces</a><br />
-
- <a href="classes/CastError.html">CastError</a><br />
-
- <a href="classes/Casts.html">Casts</a><br />
-
<a href="classes/Fasta.html">Fasta</a><br />
<a href="classes/FastaError.html">FastaError</a><br />
- <a href="classes/OptionHandler.html">OptionHandler</a><br />
-
- <a href="classes/Seq.html">Seq</a><br />
-
- <a href="classes/SeqError.html">SeqError</a><br />
-
- <a href="classes/Status.html">Status</a><br />
-
- <a href="classes/Stream.html">Stream</a><br />
-
</div>
</div>
</body>
<h1 class="section-bar">Files</h1>
<div id="index-entries">
- <a href="files/biopieces_rb.html">biopieces.rb</a><br />
-
<a href="files/fasta_rb.html">fasta.rb</a><br />
- <a href="files/seq_rb.html">seq.rb</a><br />
-
</div>
</div>
</body>
<h1 class="section-bar">Methods</h1>
<div id="index-entries">
- <a href="classes/Seq.html#M000043">complement (Seq)</a><br />
+ <a href="classes/Fasta.html#M000003">close (Fasta)</a><br />
- <a href="classes/Status.html#M000029">delete (Status)</a><br />
+ <a href="classes/Fasta.html#M000004">each (Fasta)</a><br />
- <a href="classes/Fasta.html#M000033">each (Fasta)</a><br />
+ <a href="classes/Fasta.html#M000005">get_entry (Fasta)</a><br />
- <a href="classes/Biopieces.html#M000004">each (Biopieces)</a><br />
+ <a href="classes/Fasta.html#M000002">new (Fasta)</a><br />
- <a href="classes/Biopieces.html#M000003">each_record (Biopieces)</a><br />
-
- <a href="classes/Seq.html#M000044">generate (Seq)</a><br />
-
- <a href="classes/Fasta.html#M000034">get_entry (Fasta)</a><br />
-
- <a href="classes/Status.html#M000027">get_tmpdir (Status)</a><br />
-
- <a href="classes/Seq.html#M000037">is_dna (Seq)</a><br />
-
- <a href="classes/Seq.html#M000039">is_protein (Seq)</a><br />
-
- <a href="classes/Seq.html#M000038">is_rna (Seq)</a><br />
-
- <a href="classes/Seq.html#M000036">len (Seq)</a><br />
-
- <a href="classes/Seq.html#M000035">length (Seq)</a><br />
-
- <a href="classes/Status.html#M000028">log (Status)</a><br />
-
- <a href="classes/Biopieces.html#M000006">mktmpdir (Biopieces)</a><br />
-
- <a href="classes/OptionHandler.html#M000008">new (OptionHandler)</a><br />
-
- <a href="classes/Casts.html#M000007">new (Casts)</a><br />
-
- <a href="classes/Fasta.html#M000032">new (Fasta)</a><br />
-
- <a href="classes/Biopieces.html#M000001">new (Biopieces)</a><br />
-
- <a href="classes/Stream.html#M000030">open (Stream)</a><br />
-
- <a href="classes/Fasta.html#M000031">open (Fasta)</a><br />
-
- <a href="classes/OptionHandler.html#M000016">options_check (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000023">options_check_allowed (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000022">options_check_dir (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000024">options_check_disallowed (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000020">options_check_file (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000021">options_check_files (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000018">options_check_int (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000017">options_check_mandatory (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000019">options_check_uint (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000014">options_default (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000015">options_glob (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000009">options_parse (OptionHandler)</a><br />
-
- <a href="classes/Biopieces.html#M000002">parse (Biopieces)</a><br />
-
- <a href="classes/OptionHandler.html#M000013">print_usage_and_exit (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000011">print_usage_full? (OptionHandler)</a><br />
-
- <a href="classes/OptionHandler.html#M000012">print_usage_short? (OptionHandler)</a><br />
-
- <a href="classes/Biopieces.html#M000005">puts (Biopieces)</a><br />
-
- <a href="classes/Status.html#M000025">set (Status)</a><br />
-
- <a href="classes/Status.html#M000026">set_tmpdir (Status)</a><br />
-
- <a href="classes/Seq.html#M000042">to_bp (Seq)</a><br />
-
- <a href="classes/Seq.html#M000041">to_dna (Seq)</a><br />
-
- <a href="classes/Seq.html#M000040">to_rna (Seq)</a><br />
-
- <a href="classes/OptionHandler.html#M000010">wiki_path (OptionHandler)</a><br />
+ <a href="classes/Fasta.html#M000001">open (Fasta)</a><br />
</div>
</div>
<frame src="fr_class_index.html" name="Classes" />
<frame src="fr_method_index.html" name="Methods" />
</frameset>
- <frame src="files/biopieces_rb.html" name="docwin" />
+ <frame src="files/fasta_rb.html" name="docwin" />
</frameset>
</html>
require 'seq'
require 'zlib'
-require 'pp'
# Error class for all exceptions to do with FASTA.
class FastaError < StandardError; end
include Enumerable
# Class method allowing open to be used on (zipped) files.
- # See File.open and Zlib::GzipReader.
+ # See File.open.
def self.open(*args)
- ios = File.open(*args)
-
- begin
- ios = Zlib::GzipReader.new(ios)
- rescue
- ios.rewind
- end
-
- fasta = self.new(ios)
+ ios = self.zopen(*args)
if block_given?
begin
- yield fasta
+ yield ios
ensure
ios.close
end
-
- return true
else
- return fasta
+ return ios
end
end
@type = type
end
+ # Method to close ios.
+ def close
+ @io.close
+ end
+
# Iterator method for parsing FASTA enries.
def each
while entry = get_entry do
entry
end
+
+ private
+
+ # 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.
+ def self.zopen(*args)
+ ios = File.open(*args)
+
+ begin
+ ios = Zlib::GzipReader.new(ios)
+ rescue
+ ios.rewind
+ end
+
+ self.new(ios)
+ end
end