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

new(file = nil)

[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

get_database(dbname)

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

query(dbname)

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]