Switch the shortener (used only by oracle) reqs to an optional dependency
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Optional / Dependencies.pm
index 6d4ed6f..37759b9 100644 (file)
@@ -11,17 +11,36 @@ use Carp;
 # POD is generated automatically by calling _gen_pod from the
 # Makefile.PL in $AUTHOR mode
 
+my $json_any = {
+  'JSON::Any'                     => '1.22',
+};
+
 my $moose_basic = {
-  'Moose'                      => '0.98',
-  'MooseX::Types'              => '0.21',
+  'Moose'                         => '0.98',
+  'MooseX::Types'                 => '0.21',
+};
+
+my $replicated = {
+  %$moose_basic,
+  'Hash::Merge'                   => '0.12',
 };
 
 my $admin_basic = {
   %$moose_basic,
-  'MooseX::Types::Path::Class' => '0.05',
-  'MooseX::Types::JSON'        => '0.02',
-  'JSON::Any'                  => '1.22',
-  'namespace::autoclean'       => '0.09',
+  %$json_any,
+  'MooseX::Types::Path::Class'    => '0.05',
+  'MooseX::Types::JSON'           => '0.02',
+  'namespace::autoclean'          => '0.09',
+};
+
+my $datetime_basic = {
+  'DateTime'                      => '0.55',
+  'DateTime::Format::Strptime'    => '1.2',
+};
+
+my $id_shortener = {
+  'Math::BigInt'                  => '1.89',
+  'Math::Base36'                  => '0.07',
 };
 
 my $reqs = {
@@ -30,16 +49,21 @@ my $reqs = {
   },
 
   replicated => {
-    req => {
-      %$moose_basic,
-      'Hash::Merge'               => '0.12',
-    },
+    req => $replicated,
     pod => {
       title => 'Storage::Replicated',
       desc => 'Modules required for L<DBIx::Class::Storage::DBI::Replicated>',
     },
   },
 
+  test_replicated => {
+    req => {
+      %$replicated,
+      'Test::Moose'               => '0',
+    },
+  },
+
+
   admin => {
     req => {
       %$admin_basic,
@@ -69,10 +93,13 @@ my $reqs = {
     },
     pod => {
       title => 'Storage::DBI::deploy()',
-      desc => 'Modules required for L<DBIx::Class::Storage::DBI/deploy> and L<DBIx::Class::Storage::DBI/deploymen_statements>',
+      desc => 'Modules required for L<DBIx::Class::Storage::DBI/deploy> and L<DBIx::Class::Storage::DBI/deployment_statements>',
     },
   },
 
+  id_shortener => {
+    req => $id_shortener,
+  },
 
   test_pod => {
     req => {
@@ -99,33 +126,49 @@ my $reqs = {
     },
   },
 
-  test_cycle => {
+  test_prettydebug => {
+    req => $json_any,
+  },
+
+  test_leaks => {
     req => {
       'Test::Memory::Cycle'       => '0',
       'Devel::Cycle'              => '1.10',
     },
   },
 
-  test_dtrelated => {
+  test_dt => {
+    req => $datetime_basic,
+  },
+
+  test_dt_sqlite => {
     req => {
+      %$datetime_basic,
       # t/36datetime.t
       # t/60core.t
       'DateTime::Format::SQLite'  => '0',
+    },
+  },
 
-      # t/96_is_deteministic_value.t
-      'DateTime::Format::Strptime'=> '0',
-
+  test_dt_mysql => {
+    req => {
+      %$datetime_basic,
       # t/inflate/datetime_mysql.t
       # (doesn't need Mysql itself)
-      'DateTime::Format::MySQL' => '0',
+      'DateTime::Format::MySQL'   => '0',
+    },
+  },
 
+  test_dt_pg => {
+    req => {
+      %$datetime_basic,
       # t/inflate/datetime_pg.t
       # (doesn't need PG itself)
-      'DateTime::Format::Pg'  => '0',
+      'DateTime::Format::Pg'      => '0.16004',
     },
   },
 
-  cdbicompat => {
+  test_cdbicompat => {
     req => {
       'DBIx::ContextualFetch'     => '0',
       'Class::DBI::Plugin::DeepAbstractSearch' => '0',
@@ -136,7 +179,7 @@ my $reqs = {
     },
   },
 
-  rdbms_pg => {
+  test_rdbms_pg => {
     req => {
       $ENV{DBICTEST_PG_DSN}
         ? (
@@ -146,26 +189,45 @@ my $reqs = {
     },
   },
 
-  rdbms_mysql => {
+  test_rdbms_mssql_odbc => {
+    req => {
+      $ENV{DBICTEST_MSSQL_ODBC_DSN}
+        ? (
+          'DBD::ODBC'             => '0',
+        ) : ()
+    },
+  },
+
+  test_rdbms_mssql_sybase => {
+    req => {
+      $ENV{DBICTEST_MSSQL_DSN}
+        ? (
+          'DBD::Sybase'           => '0',
+        ) : ()
+    },
+  },
+
+  test_rdbms_mysql => {
     req => {
       $ENV{DBICTEST_MYSQL_DSN}
         ? (
-          'DBD::mysql'              => '0',
+          'DBD::mysql'            => '0',
         ) : ()
     },
   },
 
-  rdbms_oracle => {
+  test_rdbms_oracle => {
     req => {
       $ENV{DBICTEST_ORA_DSN}
         ? (
+          %$id_shortener,
           'DateTime::Format::Oracle' => '0',
           'DBD::Oracle'              => '1.24',
         ) : ()
     },
   },
 
-  rdbms_ase => {
+  test_rdbms_ase => {
     req => {
       $ENV{DBICTEST_SYBASE_DSN}
         ? (
@@ -174,20 +236,20 @@ my $reqs = {
     },
   },
 
-  rdbms_asa => {
+  test_rdbms_db2 => {
     req => {
-      (scalar grep { $ENV{$_} } (qw/DBICTEST_SYBASE_ASA_DSN DBICTEST_SYBASE_ASA_ODBC_DSN/) )
+      $ENV{DBICTEST_DB2_DSN}
         ? (
-          'DateTime::Format::Strptime' => 0,
+          'DBD::DB2' => 0,
         ) : ()
     },
   },
 
-  rdbms_db2 => {
+  test_memcached => {
     req => {
-      $ENV{DBICTEST_DB2_DSN}
+      $ENV{DBICTEST_MEMCACHED}
         ? (
-          'DBD::DB2' => 0,
+          'Cache::Memcached' => 0,
         ) : ()
     },
   },
@@ -284,27 +346,23 @@ sub req_group_list {
 
 # This is to be called by the author only (automatically in Makefile.PL)
 sub _gen_pod {
+  my ($class, $distver) = @_;
 
-  my $class = shift;
   my $modfn = __PACKAGE__ . '.pm';
   $modfn =~ s/\:\:/\//g;
 
   my $podfn = __FILE__;
   $podfn =~ s/\.pm$/\.pod/;
 
-  my $distver =
+  $distver ||=
     eval { require DBIx::Class; DBIx::Class->VERSION; }
       ||
-    do {
-      warn
+    die
 "\n\n---------------------------------------------------------------------\n" .
 'Unable to load core DBIx::Class module to determine current version, '.
 'possibly due to missing dependencies. Author-mode autodocumentation ' .
 "halted\n\n" . $@ .
 "\n\n---------------------------------------------------------------------\n"
-      ;
-      '*UNKNOWN*';  # rv
-    }
   ;
 
   my $sqltver = $class->req_list_for ('deploy')->{'SQL::Translator'}