Unfuck DateTime type with newer MX::Types
[catagits/Gitalist.git] / lib / Gitalist / Git / Tag.pm
index a0a8ea6..8d20b49 100644 (file)
@@ -1,12 +1,16 @@
 package Gitalist::Git::Tag;
+
 use Moose;
 use namespace::autoclean;
 
-use Gitalist::Git::Types qw/SHA1/;
+with 'Gitalist::Git::Serializable';
+
 use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
-use MooseX::Types::Moose qw/Maybe Str/;
-use MooseX::Types::DateTime;
-use DateTime;
+use MooseX::Types::Moose          qw/Maybe/;
+use Gitalist::Git::Types          qw/SHA1/;
+use MooseX::Types::DateTime       qw/ DateTime /;
+
+use aliased 'DateTime' => 'DT';
 
 has sha1        => ( isa      => SHA1,
                      is       => 'ro',
@@ -34,10 +38,9 @@ has committer   => ( isa      => NonEmptySimpleStr,
                      is       => 'ro',
                      required => 1,
                  );
-has last_change => ( isa      => 'DateTime',
+has last_change => ( isa      => Maybe[DateTime],
                      is       => 'ro',
                      required => 1,
-                     coerce   => 1,
 );
 
 around BUILDARGS => sub {
@@ -57,7 +60,7 @@ around BUILDARGS => sub {
         my ($subject, $commitinfo) = split /\0/, $rest, 2;
         my ($committer, $epoch, $tz) =
             $commitinfo =~ /(.*)\s(\d+)\s+([+-]\d+)$/;
-        my $dt = DateTime->from_epoch(
+        my $dt = DT->from_epoch(
             epoch => $epoch,
             time_zone => $tz,
         );