NAME
MooX::Types::MooseLike::DateTime - a DateTime type for Moo
SYNOPSIS
package Person;
use Moo;
use DateTime;
use MooX::Types::MooseLike::DateTime qw/DateAndTime/;
has birthdate => (
isa => DateAndTime,
is => 'ro',
default => sub { DateTime->today }
);
TYPES
DateAndTime
A DateTime object.
DateTime
A DateTime object. Exactly the same as the DateAndTime type. If using this type and the DateTime module in your package, you'll have to alias DateTime to something else.
package Person;
use Moo;
use MooX::Types::MooseLike::DateTime qw/DateTime/;
use aliased 'DateTime' => 'DT';
has birthdate => (
isa => DateTime,
is => 'ro',
default => sub { DT->today }
);
TIPS
- Coercion
-
use DateTime::Format::Strptime; use Scalar::Util qw/blessed/; has birthdate => ( isa => DateAndTime, is => 'ro', default => sub { DateTime->today }, coerce => sub { (blessed($_[0]) and (blessed($_[0]) eq 'DateTime')) ? $_[0] : DateTime::Format::Strptime->new(pattern => '%F %T')->parse_datetime($_[0]) } );
AUTHOR
Luke Triantafyllidis <ltriant@cpan.org>
REPOSITORY
https://github.com/ltriant/MooX-Types-MooseLike-DateTime
SEE ALSO
MooX::Types::MooseLike, DateTime
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.