package Oryx::Value::DateTime; use base qw(Oryx::Value); use Class::Date qw(:errors date); sub primitive { 'DateTime' } sub check_type { my ($self, $value) = @_; my $date = date($value); if ($date->error == E_INVALID) { return 0; } return 1; } sub inflate { my ($self, $value) = @_; return date($value); } sub deflate { my ($self, $value) = @_; return date($value)->string; } 1; __END__ =head1 NAME Oryx::Value::DateTime - Values storing dates and times =head1 SYNOPSIS package CMS::Event; use base qw( Oryx::Class ); use Class::Date qw( now ); our $schema = { attributes => [ { name => 'summary', type => 'String', }, { name => 'when', type => 'DateTime', } ], }; $x = CMS::Event->create({ summary => 'Meet with Joe', when => now, }); =head1 DESCRIPTION This type stores dates and times by using L objects. This value will check to see that the value stored is a proper date and will inflate and deflate the date using L to be stored in a "DateTime" primitive type field. =head1 SEE ALSO L, L =head1 AUTHOR Richard Hundt Erichard NO SPAM AT protea-systems.comE =head1 COPYRIGHT AND LICENSE This library is free software and may be used under the same terms as Perl itself. =cut