File Coverage

blib/lib/Env/Heroku/Pg.pm
Criterion Covered Total %
statement 13 22 59.0
branch 1 2 50.0
condition 1 3 33.3
subroutine 4 4 100.0
pod n/a
total 19 31 61.2


line stmt bran cond sub pod time code
1 1     1   19664 use strict;
  1         3  
  1         49  
2             package Env::Heroku::Pg;
3             our $AUTHORITY = 'cpan:PNU';
4             # ABSTRACT: env for heroku-postgresql
5              
6 1     1   5 use warnings;
  1         1  
  1         31  
7 1     1   845 use URI;
  1         11603  
  1         1684  
8              
9             our $VERSION = '0.003'; # VERSION
10              
11             sub import {
12 1     1   17 my ($self) = @_;
13              
14 1         4 my $dburl = $ENV{DATABASE_URL};
15 1 50 33     8 if ( $dburl and $dburl =~ s/^postgres:// ) {
16 0         0 my $pgurl = URI->new( $dburl, 'http' );
17 0         0 $ENV{PGHOST} = $pgurl->host;
18 0         0 $ENV{PGPORT} = $pgurl->port;
19 0         0 $ENV{PGDATABASE} = substr $pgurl->path, 1;
20 0         0 ($ENV{PGUSER},$ENV{PGPASSWORD}) = split ':', $pgurl->userinfo;
21              
22 0         0 $ENV{DBI_DRIVER} = 'Pg';
23 0         0 $ENV{DBI_DSN} = 'dbi:Pg:'.$ENV{PGDATABASE}.'@'.$ENV{PGHOST}.':'.$ENV{PGPORT};
24 0         0 $ENV{DBI_USER} = $ENV{PGUSER};
25 0         0 $ENV{DBI_PASS} = $ENV{PGPASSWORD};
26             }
27              
28 1         15 return 1;
29             }
30              
31             1;
32              
33             __END__