Catalyst-Plugin-Authorization-Abilities
view release on metacpan or search on metacpan
t/lib/Schema/Utils.pm view on Meta::CPAN
is not defined in " . $self->conf . " !";
return $model
}
sub _connect_info {
my $self = shift;
my $model = $self->model;
my ($dsn, $user, $password, $unicode_option, $db_type);
eval {
if (ref $model->{'connect_info'}) {
$dsn = $self->dsn;
$user = ${$model->{'connect_info'}}[1];
$password = ${$model->{'connect_info'}}[2];
# Determine database type amongst: SQLite, Pg or MySQL
$dsn =~ m/^dbi:(\w+)/;
$db_type = lc($1);
my %unicode_connection_for_db = (
'sqlite' => { sqlite_unicode => 1 },
'pg' => { pg_enable_utf8 => 1 },
'mysql' => { mysql_enable_utf8 => 1 },
);
$unicode_option = $unicode_connection_for_db{$db_type};
}
};
if ($@) {
die "Your DSN line in " . $self->dsn . " doesn't look like a valid DSN. : $@";
}
die "No valid Data Source Name (DSN).\n" if !$dsn;
$dsn =~ s/__HOME__/$FindBin::Bin\/\.\./g;
if ( $db_type eq 'sqlite' ){
$dsn =~ m/.*:(.*)$/;
my $dir = dir($1)->parent;
$dir->mkpath;
}
my $merge = Hash::Merge->new( 'LEFT_PRECEDENT' );
my $allattrs = $merge->merge( $unicode_option, $attrs );
return $dsn, $user, $password, $allattrs;
}
sub _build_schema {
my $self = shift;
my $schema_class = $self->model->{schema_class};
( run in 0.377 second using v1.01-cache-2.11-cpan-88abd93f124 )