Missing stuff for DateTime branch
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / InflateColumn / DateTime.pm
CommitLineData
445e5e31 1package DBIx::Class::InflateColumn::DateTime;
2
3use strict;
4use warnings;
5use base qw/DBIx::Class/;
6
7__PACKAGE__->load_components(qw/InflateColumn/);
8
9__PACKAGE__->mk_group_accessors('simple' => '__datetime_parser');
10
11sub register_column {
12 my ($self, $column, $info, @rest) = @_;
13 $self->next::method($column, $info, @rest);
14 if ($info->{data_type} =~ /^datetime$/i) {
15 $self->inflate_column(
16 $column =>
17 {
18 inflate => sub {
19 my ($value, $obj) = @_;
20 $obj->_datetime_parser->parse_datetime($value);
21 },
22 deflate => sub {
23 my ($value, $obj) = @_;
24 $obj->_datetime_parser->format_datetime($value);
25 },
26 }
27 );
28 }
29}
30
31sub _datetime_parser {
32 my $self = shift;
33 if (my $parser = $self->__datetime_parser) {
34 return $parser;
35 }
36 my $parser = $self->result_source->storage->datetime_parser(@_);
37 return $self->__datetime_parser($parser);
38}
39
401;