Class::DBI::Plugin::TimePiece::Oracle
かぜぶろさんが作ったClass::DBI::Plugin::TimePiece::MySQLと
私が作ったClass::DBI::Plugin::TimePiece::Oracleを用意して、
DBにあわせて使うと。で、デフォルトフォーマットが使えないときに、
Class::DBI::Plugin::TimePieceでフォーマットを指定すると。
こんなんでどうですかね。
package Class::DBI::Plugin::TimePiece::Oracle;
use strict;
use warnings;
use Carp;
use Time::Piece::Oracle;
use vars '$VERSION';
$VERSION = '0.01';
sub import {
my $class = shift;
my $pkg = caller(0);
unless($pkg->isa('Class::DBI')){
croak(__PACKAGE__." is for Class::DBI application.");
}
no strict 'refs';
*{"$pkg\::has_a_timepiece"} = sub {
my $self = shift;
my $colum = shift;
shift;
$self->has_a(
$colum => 'Time::Piece',
inflate => 'from_oracle_date',
deflate => 'oracle_date',
);
};
*{"$pkg\::has_a_tp"} = *{"$pkg\::has_a_timepiece"};
}
1;
Class::DBI::Plugin::TimePieceをもっとスマートにできそうだなぁ。