X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FOptional%2FDependencies.pm;h=571d187b09aa6c1be0d66ed2ba71faffadabd19e;hb=726c8f65ef37b47aad62e29a306f64528a00f65d;hp=fbb19e32d7cd1711d47a748c5774dbb2a3a18dc1;hpb=56dca25f0e1582928ba897df4e1cf44c9710d4f2;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Optional/Dependencies.pm b/lib/DBIx/Class/Optional/Dependencies.pm index fbb19e3..571d187 100644 --- a/lib/DBIx/Class/Optional/Dependencies.pm +++ b/lib/DBIx/Class/Optional/Dependencies.pm @@ -3,7 +3,7 @@ package DBIx::Class::Optional::Dependencies; use warnings; use strict; -use Carp; +use Carp (); # NO EXTERNAL NON-5.8.1 CORE DEPENDENCIES EVER (e.g. C::A::G) # This module is to be loaded by Makefile.PM on a pristine system @@ -57,6 +57,12 @@ my $rdbms_mssql_sybase = { my $rdbms_mssql_ado = { 'DBD::ADO' => '0', }; +my $rdbms_msaccess_odbc = { + 'DBD::ODBC' => '0', +}; +my $rdbms_msaccess_ado = { + 'DBD::ADO' => '0', +}; my $rdbms_mysql = { 'DBD::mysql' => '0', }; @@ -70,6 +76,9 @@ my $rdbms_ase = { my $rdbms_db2 = { 'DBD::DB2' => '0', }; +my $rdbms_firebird_odbc = { + 'DBD::ODBC' => '0', +}; my $reqs = { dist => { @@ -129,6 +138,12 @@ my $reqs = { req => $id_shortener, }, + test_component_accessor => { + req => { + 'Class::Unload' => '0.07', + }, + }, + test_pod => { req => { 'Test::Pod' => '1.41', @@ -259,6 +274,26 @@ my $reqs = { }, }, + rdbms_msaccess_odbc => { + req => { + %$rdbms_msaccess_odbc, + }, + pod => { + title => 'MS Access support via DBD::ODBC', + desc => 'Modules required to connect to MS Access via DBD::ODBC', + }, + }, + + rdbms_msaccess_ado => { + req => { + %$rdbms_msaccess_ado, + }, + pod => { + title => 'MS Access support via DBD::ADO (Windows only)', + desc => 'Modules required to connect to MS Access via DBD::ADO. This particular DBD is available on Windows only', + }, + }, + rdbms_mysql => { req => { %$rdbms_mysql, @@ -339,6 +374,28 @@ my $reqs = { }, }, + test_rdbms_msaccess_odbc => { + req => { + $ENV{DBICTEST_MSACCESS_ODBC_DSN} + ? ( + %$rdbms_msaccess_odbc, + %$datetime_basic, + 'Data::GUID' => '0', + ) : () + }, + }, + + test_rdbms_msaccess_ado => { + req => { + $ENV{DBICTEST_MSACCESS_ADO_DSN} + ? ( + %$rdbms_msaccess_ado, + %$datetime_basic, + 'Data::GUID' => 0, + ) : () + }, + }, + test_rdbms_mysql => { req => { $ENV{DBICTEST_MYSQL_DSN} @@ -378,6 +435,15 @@ my $reqs = { }, }, + test_rdbms_firebird_odbc => { + req => { + $ENV{DBICTEST_FIREBIRD_ODBC_DSN} + ? ( + %$rdbms_firebird_odbc, + ) : () + }, + }, + test_memcached => { req => { $ENV{DBICTEST_MEMCACHED} @@ -393,11 +459,11 @@ my $reqs = { sub req_list_for { my ($class, $group) = @_; - croak "req_list_for() expects a requirement group name" + Carp::croak "req_list_for() expects a requirement group name" unless $group; my $deps = $reqs->{$group}{req} - or croak "Requirement group '$group' does not exist"; + or Carp::croak "Requirement group '$group' does not exist"; return { %$deps }; } @@ -407,7 +473,7 @@ our %req_availability_cache; sub req_ok_for { my ($class, $group) = @_; - croak "req_ok_for() expects a requirement group name" + Carp::croak "req_ok_for() expects a requirement group name" unless $group; return $class->_check_deps($group)->{status}; @@ -416,7 +482,7 @@ sub req_ok_for { sub req_missing_for { my ($class, $group) = @_; - croak "req_missing_for() expects a requirement group name" + Carp::croak "req_missing_for() expects a requirement group name" unless $group; return $class->_check_deps($group)->{missing}; @@ -425,7 +491,7 @@ sub req_missing_for { sub req_errorlist_for { my ($class, $group) = @_; - croak "req_errorlist_for() expects a requirement group name" + Carp::croak "req_errorlist_for() expects a requirement group name" unless $group; return $class->_check_deps($group)->{errorlist}; @@ -455,6 +521,7 @@ sub _check_deps { if (keys %errors) { my $missing = join (', ', map { $deps->{$_} ? "$_ >= $deps->{$_}" : $_ } (sort keys %errors) ); $missing .= " (see $class for details)" if $reqs->{$group}{pod}; + $missing .= "\n"; $res = { status => 0, errorlist => \%errors, @@ -643,7 +710,7 @@ EOD 'You may distribute this code under the same terms as Perl itself', ); - open (my $fh, '>', $podfn) or croak "Unable to write to $podfn: $!"; + open (my $fh, '>', $podfn) or Carp::croak "Unable to write to $podfn: $!"; print $fh join ("\n\n", @chunks); close ($fh); }