Class Bio::Registry
In: lib/bio/io/registry.rb
Parent: Object

Methods

db   get_database   new   query  

Classes and Modules

Class Bio::Registry::DB

Attributes

databases  [R]  List of databases (Array of Bio::Registry::DB)
spec_version  [R]  Version string of the first configulation file

Public Class methods

[Source]

     # File lib/bio/io/registry.rb, line 99
 99:   def initialize(file = nil)
100:     @spec_version = nil
101:     @databases = Array.new
102:     read_local(file) if file
103:     env_path = ENV['OBDA_SEARCH_PATH']
104:     if env_path and env_path.size > 0
105:       read_env(env_path)
106:     else
107:       read_local("#{ENV['HOME']}/.bioinformatics/seqdatabase.ini")
108:       read_local("/etc/bioinformatics/seqdatabase.ini")
109:       if @databases.empty?
110:         read_remote("http://www.open-bio.org/registry/seqdatabase.ini")
111:       end
112:     end
113:   end

Public Instance methods

db(dbname)

Alias for get_database

Returns a dababase handle (Bio::SQL, Bio::Fetch etc.) or nil if not found (case insensitive). The handles should have get_by_id method.

[Source]

     # File lib/bio/io/registry.rb, line 124
124:   def get_database(dbname)
125:     @databases.each do |db|
126:       if db.database == dbname.downcase
127:         case db.protocol
128:         when 'biofetch'
129:           return serv_biofetch(db)
130:         when 'biosql'
131:           return serv_biosql(db)
132:         when 'flat', 'index-flat', 'index-berkeleydb'
133:           return serv_flat(db)
134:         when 'bsane-corba', 'biocorba'
135:           raise NotImplementedError
136:         when 'xembl'
137:           raise NotImplementedError
138:         end
139:       end
140:     end
141:     return nil
142:   end

Returns a Registry::DB object corresponding to the first dbname entry in the registry records (case insensitive).

[Source]

     # File lib/bio/io/registry.rb, line 147
147:   def query(dbname)
148:     @databases.each do |db|
149:       return db if db.database == dbname.downcase
150:     end
151:   end

[Validate]