Bio-EnsEMBL
view release on metacpan or search on metacpan
lib/Bio/EnsEMBL/Utils/URI.pm view on Meta::CPAN
Description : Generates a URI string from the paramaters in this object
Returntype : String
Exceptions : None
Status : Stable
=cut
sub generate_uri {
my ($self) = @_;
my $scheme = sprintf('%s://', ($URI_ESCAPE) ? uri_escape($self->scheme()) : $self->scheme());
my $user_credentials = q{};
my $host_credentials = q{};
my $location = q{};
if($self->user() || $self->pass()) {
my $user = $self->user();
my $pass = $self->pass();
if($URI_ESCAPE) {
$user = uri_escape($user) if $user;
$pass = uri_escape($pass) if $pass;
}
$user_credentials = sprintf('%s%s@',
( $user ? $user : q{} ),
( $pass ? q{:}.$pass : q{} )
);
}
if($self->host() || $self->port()) {
my $host = $self->host();
my $port = $self->port();
if($URI_ESCAPE) {
$host = uri_escape($host) if $host;
$port = uri_escape($port) if $port;
}
$host_credentials = sprintf('%s%s',
( $host ? $host : q{} ),
( $port ? q{:}.$port : q{} )
);
}
if($self->is_db_scheme() || $self->scheme() eq '') {
if($self->scheme() eq 'sqlite') {
if(! $self->path()) {
my $tmp_loc = $self->db_params()->{dbname};
throw "There is no dbname available" unless $tmp_loc;
lib/Bio/EnsEMBL/Utils/URI.pm view on Meta::CPAN
my $values_array = $self->get_params($key);
foreach my $value (@{$values_array}) {
my $encoded_key = ($URI_ESCAPE) ? uri_escape($key) : $key;
my $encoded_value = ($URI_ESCAPE) ? uri_escape($value) : $value;
push(@params, ($encoded_value) ? "$encoded_key=$encoded_value" : $encoded_key);
}
}
$param_string .= join(q{;}, @params);
}
return join(q{}, $scheme, $user_credentials, $host_credentials, $location, $param_string);
}
1;
( run in 0.232 second using v1.01-cache-2.11-cpan-a5abf4f5562 )