annotate variant_effect_predictor/Bio/DB/Registry.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 # POD documentation - main docs before the code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 # $Id: Registry.pm,v 1.12.2.2 2003/06/26 11:07:10 heikki Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 Bio::DB::Registry - Access to the Open Bio Database Access registry scheme
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12 use Bio::DB::Registry();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 $registry = new Bio::DB::Registry();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 @available_services = $registry->services;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 $db = $registry->get_database('embl');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 # $db is a Bio::DB::SeqI implementing class
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 $seq = $db->get_Seq_by_acc("J02231");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 This module provides access to the Open Bio Database Access scheme,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 which provides a cross language and cross platform specification of how
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 to get to databases.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 If the user or system administrator has not installed the default init
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 file, seqdatabase.ini, in /etc/bioinformatics or ${HOME}/.bioinformatics
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 then creating the first Registry object copies the default settings from
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 the net. The Registry object will attempt to store these settings in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 ${HOME}/.bioinformatics/seqdatabase.ini.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 Users can specify one or more custom locations for the init file by
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 setting $OBDA_SEARCH_PATH to those directories, where multiple
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 directories should be separated by ';'.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 Ewan Birney originally wrote this class.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 =head2 Reporting Bugs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 Report bugs to the Bioperl bug tracking system to help us keep track
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 the bugs and their resolution. Bug reports can be submitted via email
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 or the web:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 bioperl-bugs@bio.perl.org
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 http://bugzilla.bioperl.org/
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 The rest of the documentation details each of the object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 methods. Internal methods are usually preceded with a _
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 # Let the code begin...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 package Bio::DB::Registry;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 use vars qw(@ISA $VERSION $OBDA_SPEC_VERSION $OBDA_SEARCH_PATH);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 use Bio::Root::Root;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 @ISA = qw(Bio::Root::Root);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 use Bio::DB::Failover;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 use Bio::Root::HTTPget;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 $VERSION = '1.2';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 BEGIN {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 $OBDA_SPEC_VERSION = 1.0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 if (defined $ENV{OBDA_SEARCH_PATH}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 $OBDA_SEARCH_PATH = $ENV{OBDA_SEARCH_PATH} || '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 my %implement = (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 'biocorba' => 'Bio::CorbaClient::SeqDB',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 'flat' => 'Bio::DB::Flat',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 'biosql' => 'Bio::DB::BioSQL::BioDatabaseAdaptor',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 'biofetch' => 'Bio::DB::BioFetch'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 my $fallbackRegistryURL = 'http://www.open-bio.org/registry/seqdatabase.ini';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 my ($class,@args) = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 my $self = $class->SUPER::new(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 # open files in order
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 $self->{'_dbs'} = {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 $self->_load_registry();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 sub _load_registry {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 my $home = (getpwuid($>))[7];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 my $f;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 if ( $OBDA_SEARCH_PATH ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 foreach ( split /;/,$OBDA_SEARCH_PATH ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 next unless -e $_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 open(F,"$OBDA_SEARCH_PATH/seqdatabase.ini");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 $f = \*F;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 last;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 elsif( -e "$home/.bioinformatics/seqdatabase.ini" ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 open(F,"$home/.bioinformatics/seqdatabase.ini");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 $f = \*F;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 } elsif ( -e "/etc/bioinformatics/seqdatabase.ini" ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 open(F,"/etc/bioinformatics/seqdatabase.ini");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 $f = \*F;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 # waiting for information
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 $self->warn("No seqdatabase.ini file found in ~/.bioinformatics/ \nor in /etc/bioinformatics/.\nor in directory specified by $OBDA_SEARCH_PATH".
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 "Using web to get database registry from \n$fallbackRegistryURL");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 # Last gasp. Try to use HTTPget module to retrieve the registry from
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 # the web...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 $f = Bio::Root::HTTPget::getFH($fallbackRegistryURL);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 # store the default registry file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 mkdir "$home/.bioinformatics" unless -e "$home/.bioinformatics";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 open(F,">$home/.bioinformatics/seqdatabase.ini");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 print F while (<$f>);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 close F;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 $self->warn("Stored the default registry configuration into:\n".
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 " $home/.bioinformatics/seqdatabase.ini");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 open(F,"$home/.bioinformatics/seqdatabase.ini");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 $f = \*F;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 while( <$f> ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 /^VERSION=([\d\.]+)/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 $self->throw("Do not know about this version [$1] > $OBDA_SPEC_VERSION")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 if $1 > $OBDA_SPEC_VERSION or !$1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 last;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 while( <$f> ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 if( /^#/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 if( /^\s/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 if( /\[(\w+)\]/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 my $db = $1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 my $hash = {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 while( <$f> ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 chomp();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 /^#/ && next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 /^$/ && last;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 my ($tag,$value) = split('=',$_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 $value =~ s/\s//g;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 $tag =~ s/\s//g;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 $hash->{"\L$tag"} = lc $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 if( !exists $self->{'_dbs'}->{$db} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 my $failover = Bio::DB::Failover->new();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 $self->{'_dbs'}->{$db}=$failover;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 my $class;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 if (defined $implement{$hash->{'protocol'}}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 $class = $implement{$hash->{'protocol'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 $self->warn("Registry does not support protocol ".$hash->{'protocol'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 eval "require $class";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 if ($@) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 $self->verbose && $self->warn("Couldn't load $class");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 eval {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 my $randi = $class->new_from_registry(%$hash);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 $self->{'_dbs'}->{$db}->add_database($randi); };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 if ($@) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 $self->warn("Couldn't call new_from_registry on [$class]\n$@");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 next; # back to main loop
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 $self->warn("Uninterpretable line in registry, $_");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 =head2 get_database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 Title : get_database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 Usage : my $db = $registry->get_database($dbname);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 Function: Retrieve a Database object which implements Bio::DB::SeqI interface
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 Returns : Bio::DB::SeqI object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 Args : string describing the name of the database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 sub get_database {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 my ($self,$dbname) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 $dbname = lc $dbname;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 if( !defined $dbname ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 $self->warn("must get_database with a database name");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 return undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 if( !exists $self->{'_dbs'}->{$dbname} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 $self->warn("No database in with $dbname in registry");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 return undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 return $self->{'_dbs'}->{$dbname};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 =head2 services
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 Title : services
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 Usage : my @available = $registry->services();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 Function: returns list of possible services
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 Returns : list of strings
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 sub services{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 return () unless ( defined $self->{'_dbs'} &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 ref( $self->{'_dbs'} ) =~ /HASH/i);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 return keys %{$self->{'_dbs'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 ## End of Package
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 __END__
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256