in progress
[jalview.git] / forester / ruby / evoruby / lib / evo / io / parser / sp_taxonomy_parser.rb
1 #
2 # = lib/evo/io/parser/sp_taxonomy_parser - SpTaxonomyParser class
3 #
4 # Copyright::  Copyright (C) 2006-2007 Christian M. Zmasek
5 # License::    GNU Lesser General Public License (LGPL)
6 #
7 # $Id: sp_taxonomy_parser.rb,v 1.2 2008/12/31 03:21:45 cmzmasek Exp $
8
9
10 module Evoruby
11
12     require 'lib/evo/taxonomy/sp_taxonomy'
13
14     class SpTaxonomyParser
15
16         START_OF_COMMENT_LINE_CHAR = "#"
17
18         # raises ArgumentError
19         def SpTaxonomyParser.parse( path )
20             Util.check_file_for_readability( path )
21             row = 0
22             sp_taxonomies = Array.new
23             File.open( path ) do | file |
24                 while line = file.gets
25                     row += 1
26                     if !Util.is_string_empty?( line )
27                         if line =~ /([A-Z0-9]{3,5})\s+[A-Z]\s+(\d+):\s+N=(.+)/
28                             code = $1
29                             id = $2
30                             sci_name = $3
31                             tax = SpTaxonomy.new(code, id, sci_name )
32                             #puts tax.to_str
33                             sp_taxonomies.push( tax )
34                         end
35                     end
36                 end
37             end
38             sp_taxonomies
39         end
40     end # class SpTaxonomyParser
41
42 end # module Evoruby