r64013 - in /trunk/libdatetime-format-dbi-perl: Build.PL Changes MANIFEST MANIFEST.SKIP META.yml SIGNATURE debian/changelog lib/DateTime/Format/DBI.pm t/withtestdb.t
periapt-guest at users.alioth.debian.org
periapt-guest at users.alioth.debian.org
Tue Oct 19 20:54:17 UTC 2010
Author: periapt-guest
Date: Tue Oct 19 20:54:04 2010
New Revision: 64013
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=64013
Log:
New upstream release
Added:
trunk/libdatetime-format-dbi-perl/MANIFEST.SKIP
- copied unchanged from r64012, branches/upstream/libdatetime-format-dbi-perl/current/MANIFEST.SKIP
trunk/libdatetime-format-dbi-perl/t/withtestdb.t
- copied unchanged from r64012, branches/upstream/libdatetime-format-dbi-perl/current/t/withtestdb.t
Modified:
trunk/libdatetime-format-dbi-perl/Build.PL
trunk/libdatetime-format-dbi-perl/Changes
trunk/libdatetime-format-dbi-perl/MANIFEST
trunk/libdatetime-format-dbi-perl/META.yml
trunk/libdatetime-format-dbi-perl/SIGNATURE
trunk/libdatetime-format-dbi-perl/debian/changelog
trunk/libdatetime-format-dbi-perl/lib/DateTime/Format/DBI.pm
Modified: trunk/libdatetime-format-dbi-perl/Build.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-dbi-perl/Build.PL?rev=64013&op=diff
==============================================================================
--- trunk/libdatetime-format-dbi-perl/Build.PL (original)
+++ trunk/libdatetime-format-dbi-perl/Build.PL Tue Oct 19 20:54:04 2010
@@ -23,15 +23,11 @@
'DBI' => 1.21,
},
'recommends' => {
+ 'Test::Database' => 0,
},
'build_requires' => {
'Test::More' => 0,
'Test::NoWarnings' => 0,
- },
-
- auto_features => {
- map { make_feature($_) }
- keys %{$db}
},
'no_index' => {
'directory' => 'eg'
@@ -44,11 +40,3 @@
);
$b->create_build_script;
-
-sub make_feature {
- my $dbname = $db->{shift};
- return ( (lc $dbname).'_support' => {
- 'description' => 'support for DateTime::Format::'.$dbname,
- 'requires' => { 'DateTime::Format::'.$dbname => shift || 0 }
- })
-}
Modified: trunk/libdatetime-format-dbi-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-dbi-perl/Changes?rev=64013&op=diff
==============================================================================
--- trunk/libdatetime-format-dbi-perl/Changes (original)
+++ trunk/libdatetime-format-dbi-perl/Changes Tue Oct 19 20:54:04 2010
@@ -1,4 +1,9 @@
Revision history for Perl extension DateTime::Format::DBI.
+
+0.040 Tue Oct 19 00:00:00 2010
+ - add tests with Test::Database
+ - support DT::F:: modules that are singletons,
+ fixes #61614: [patch] Oracle/Sybase support
0.036 Fri Oct 15 00:00:00 2010
- fix warning generated by DBI (reported by Ted Byers)
@@ -42,4 +47,4 @@
- supports DBD::mysql and DateTime::Format::MySQL
- supports DBD::Pg and DateTime::Format::Pg
-$Id: Changes 4454 2010-10-15 12:21:12Z cfaerber $
+$Id: Changes 4457 2010-10-19 13:35:13Z cfaerber $
Modified: trunk/libdatetime-format-dbi-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-dbi-perl/MANIFEST?rev=64013&op=diff
==============================================================================
--- trunk/libdatetime-format-dbi-perl/MANIFEST (original)
+++ trunk/libdatetime-format-dbi-perl/MANIFEST Tue Oct 19 20:54:04 2010
@@ -1,13 +1,15 @@
+Build.PL
+Changes
+lib/DateTime/Format/DBI.pm
+LICENSE
+Makefile.PL
+MANIFEST
+MANIFEST.SKIP
+META.yml
README
-Changes
-LICENSE
-MANIFEST
-Build.PL
-lib/DateTime/Format/DBI.pm
t/00basic.t
t/10pod.t
t/11pod_cover.t
t/withsqlite.t
-Makefile.PL
-META.yml
+t/withtestdb.t
SIGNATURE Added here by Module::Build
Modified: trunk/libdatetime-format-dbi-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-dbi-perl/META.yml?rev=64013&op=diff
==============================================================================
--- trunk/libdatetime-format-dbi-perl/META.yml (original)
+++ trunk/libdatetime-format-dbi-perl/META.yml Tue Oct 19 20:54:04 2010
@@ -18,10 +18,12 @@
provides:
DateTime::Format::DBI:
file: lib/DateTime/Format/DBI.pm
- version: 0.036
+ version: 0.040
+recommends:
+ Test::Database: 0
requires:
DBI: 1.21
DateTime: 0.1
resources:
license: http://dev.perl.org/licenses/
-version: 0.036
+version: 0.040
Modified: trunk/libdatetime-format-dbi-perl/SIGNATURE
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-dbi-perl/SIGNATURE?rev=64013&op=diff
==============================================================================
--- trunk/libdatetime-format-dbi-perl/SIGNATURE (original)
+++ trunk/libdatetime-format-dbi-perl/SIGNATURE Tue Oct 19 20:54:04 2010
@@ -14,22 +14,24 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-SHA1 0a6a063db037ed7dc6b67033dadebb4d0caf7cac Build.PL
-SHA1 ae7971c6f48a774596c5e21e3d7082ffe0ed0136 Changes
+SHA1 1a4f14c2819b5476b06df43656e47dc1319ebe5e Build.PL
+SHA1 68c45a25e1eb2dce7eed9c48d92f9b2570ebe549 Changes
SHA1 9b37c74ac55bf4a1d347a873f9936ca24cab4f3b LICENSE
-SHA1 3e5957472b74da21fcd54683e8b406ead9d08fe6 MANIFEST
-SHA1 2fd2b5eee5e094294c55696617d605a9b8300c20 META.yml
+SHA1 6eb53866ab9b1a8b60cc7ace6029754d38b755ec MANIFEST
+SHA1 6abdc1ab6f9e378b1a00862050bfedafa9abd139 MANIFEST.SKIP
+SHA1 ed2de489efc73cab1d17e17fc2a011f6f1d64baa META.yml
SHA1 a7ec0a041d9c1ac4e0a83b18b4c851d5ff90bbf8 Makefile.PL
SHA1 016c6cdea326d4252bf55ba96f50ee79fe9f9b62 README
-SHA1 dfac20545b9c6efa41b98237674657fd27926c76 lib/DateTime/Format/DBI.pm
+SHA1 34a66f01010ea63d94ae4cff678f82efc9251dff lib/DateTime/Format/DBI.pm
SHA1 fba84bcb3b8f2c3743fbb79203d181488b293f50 t/00basic.t
SHA1 331eb58bd820411c7685dfd7aff4d060fdafab5e t/10pod.t
SHA1 94cbaa3da22888098b42d4affce837e3b45ccfef t/11pod_cover.t
SHA1 16c19824b373d192db666cac33ecbcf1d5102bbf t/withsqlite.t
+SHA1 987f46bc44c8968f5cde9650fc3a5768da5f3a70 t/withtestdb.t
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (Darwin)
-iEYEARECAAYFAky4R0AACgkQSKUOY2OWgPDXxwCfUkTx5fFqz7T1nnICVw/G6DNI
-HTkAoIiBaNP0/6sIgz2qjvgZr1NO+XyH
-=K91a
+iEYEARECAAYFAky9nqUACgkQSKUOY2OWgPCQjwCfRR3ku4XdJEfNMDEf7ZTiRQTd
+VDYAoKWIaPcE4csA4FW3D4eghgE5KgSk
+=8xgF
-----END PGP SIGNATURE-----
Modified: trunk/libdatetime-format-dbi-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-dbi-perl/debian/changelog?rev=64013&op=diff
==============================================================================
--- trunk/libdatetime-format-dbi-perl/debian/changelog (original)
+++ trunk/libdatetime-format-dbi-perl/debian/changelog Tue Oct 19 20:54:04 2010
@@ -1,3 +1,9 @@
+libdatetime-format-dbi-perl (0.040-1) UNRELEASED; urgency=low
+
+ * New upstream release
+
+ -- Nicholas Bamber <nicholas at periapt.co.uk> Tue, 19 Oct 2010 21:54:36 +0100
+
libdatetime-format-dbi-perl (0.036-1) unstable; urgency=low
* Added myself to Uploaders
Modified: trunk/libdatetime-format-dbi-perl/lib/DateTime/Format/DBI.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-dbi-perl/lib/DateTime/Format/DBI.pm?rev=64013&op=diff
==============================================================================
--- trunk/libdatetime-format-dbi-perl/lib/DateTime/Format/DBI.pm (original)
+++ trunk/libdatetime-format-dbi-perl/lib/DateTime/Format/DBI.pm Tue Oct 19 20:54:04 2010
@@ -1,5 +1,5 @@
package DateTime::Format::DBI;
-# $Id: DBI.pm 4454 2010-10-15 12:21:12Z cfaerber $
+# $Id: DBI.pm 4457 2010-10-19 13:35:13Z cfaerber $
use strict;
use vars qw ($VERSION);
@@ -8,7 +8,7 @@
use Carp;
use DBI 1.21;
-$VERSION = '0.036';
+$VERSION = '0.040';
$VERSION = eval { $VERSION };
our %db_to_parser = (
@@ -17,25 +17,58 @@
'pg' => 'DateTime::Format::Pg',
'db2' => 'DateTime::Format::DB2',
'mssql' => 'DateTime::Format::MSSQL', # experimental
- 'oracle' => 'DateTime::Format::Oracle', # experimental
- 'sqlite' => 'DateTime::Format::SQLite', # experimental
- 'sybase' => 'DateTime::Format::Sybase', # experimental
+ 'oracle' => 'DateTime::Format::Oracle',
+ 'sqlite' => 'DateTime::Format::SQLite',
+ 'sybase' => 'DateTime::Format::Sybase',
);
+
+sub _get_parser {
+ while(@_) {
+ my $dbt = lc shift;
+ return $db_to_parser{$dbt}
+ if exists $db_to_parser{$dbt};
+ }
+ return undef;
+}
sub new {
my ($name,$dbh) = @_;
UNIVERSAL::isa($dbh,'DBI::db') || croak('Not a DBI handle.');
+# NB: Using $dbh->{Driver}->{Name} this call does not work with drivers that
+# connect to multiple differnt types of databases, such as DBD::Proxy,
+# DBD::ODBC, DBD::JDBC,...
+#
+# DBI already has code to determine the underlying database type, which is NOT
+# trivial. I don't want to duplicate that here (although it's only available
+# through a private API).
+
# my $dbtype = $dbh->{Driver}->{Name};
+
my @dbtypes = eval { DBI::_dbtype_names($dbh,0) };
- my $dbtype = shift @dbtypes;
-
- my $pclass = $db_to_parser{lc $dbtype};
- $pclass || croak("Unsupported database driver '".$dbtype."'");
-
- my $parser = eval "use $pclass; $pclass->new();";
-
- $parser || croak("Cannot load $pclass");
+ my $pclass = _get_parser(@dbtypes);
+
+ croak("No supported database driver in '@dbtypes'")
+ unless defined $pclass;
+
+ eval "use $pclass;";
+ croak("Cannot load $pclass: $@") if $@;
+
+ ## some db formatters are singletons and don't have 'new'
+ ##
+ my $new = UNIVERSAL::can($pclass, 'new');
+
+ my $parser; if(ref $new) {
+ $parser = eval { $new->($pclass); };
+ croak "Cannot create object for $pclass: $@" if $@;
+ } else {
+ $parser = $pclass;
+ }
+
+ foreach(('format_datetime', 'parse_datetime')) {
+ croak "$pclass->$_ is missing"
+ unless UNIVERSAL::can($parser, $_)
+ }
return $parser;
}
More information about the Pkg-perl-cvs-commits
mailing list