Change from string to bareword types, and add a Maybe in Gitalist/Git/Project as...
Tomas Doran [Fri, 6 Nov 2009 00:03:11 +0000 (00:03 +0000)]
lib/Gitalist/Git/Object.pm
lib/Gitalist/Git/Project.pm
lib/Gitalist/Git/Util.pm
lib/Gitalist/Model/GPP.pm

index 4dceffa..e811be2 100644 (file)
@@ -1,32 +1,26 @@
 use MooseX::Declare;
 
 class Gitalist::Git::Object {
+    use MooseX::Types::Moose qw/Str Int/;
     use File::Stat::ModeString qw/mode_to_string/;
     has project => ( isa => 'Gitalist::Git::Project',
                      required => 1,
                      is => 'ro',
                      handles => [ 'run_cmd' ],
                  );
-    has sha1 => ( isa => 'Str',
+    has $_ => ( isa => Str,
                   required => 1,
-                  is => 'ro' );
-    has type => ( isa => 'Str',
+                  is => 'ro' )
+        for qw/sha1 file/;
+    has $_ => ( isa => Str,
                   required => 1,
                   is => 'ro',
-                  lazy_build => 1 );
-    has file => ( isa => 'Str',
+                  lazy_build => 1 )
+        for qw/type modestr/;
+    has $_ => ( isa => Int,
                   required => 1,
-                  is => 'ro' );
-    has mode => ( isa => 'Int',
-                  required => 1,
-                  is => 'ro' );
-    has modestr => ( isa => 'Str',
-                     is => 'ro',
-                     lazy_build => 1,
-                 );
-    has size => ( isa => 'Int',
-                  is => 'ro',
-                  lazy_build => 1);
+                  is => 'ro' )
+        for qw/mode size/;
 
     method _build_type {
         my $output = $self->run_cmd(qw/cat-file -t/, $self->{sha1});
index 69575be..c5e5f94 100644 (file)
@@ -3,6 +3,7 @@ use MooseX::Declare;
 class Gitalist::Git::Project {
     # FIXME, use Types::Path::Class and coerce
     use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
+    use MooseX::Types::Moose qw/Str Maybe/;
     use DateTime;
     use Path::Class;
     use Gitalist::Git::Util;
@@ -15,7 +16,7 @@ class Gitalist::Git::Project {
     has path => ( isa => "Path::Class::Dir",
                   is => 'ro');
 
-    has description => ( isa => 'Str',
+    has description => ( isa => Str,
                          is => 'ro',
                          lazy_build => 1,
                      );
@@ -23,7 +24,7 @@ class Gitalist::Git::Project {
                    is => 'ro',
                    lazy_build => 1,
                );
-    has last_change => ( isa => 'DateTime',
+    has last_change => ( isa => Maybe['DateTime'],
                          is => 'ro',
                          lazy_build => 1,
                      );
index 68fa266..06b6d4d 100644 (file)
@@ -4,7 +4,8 @@ class Gitalist::Git::Util {
     use File::Which;
     use Git::PurePerl;
     use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
-    has gitdir => ( isa => "Str", is => 'ro', required => 1 );
+    use MooseX::Types::Moose qw/Str/;
+    has gitdir => ( isa => Str, is => 'ro', required => 1 );
     has _git      => ( isa => NonEmptySimpleStr, is => 'ro', lazy_build => 1 );
     sub _build__git {
         my $git = File::Which::which('git');
index 162ba70..dc3a41d 100644 (file)
@@ -4,6 +4,7 @@ package Gitalist::Model::GPP;
 
 #use base 'Catalyst::Model::Adaptor';
 use Moose;
+use MooseX::Types::Moose qw/Str/;
 use namespace::autoclean;
 
 extends 'Catalyst::Model';
@@ -25,7 +26,7 @@ has git => (
 
 has project => (
   is => 'rw',
-  isa => 'Str',
+  isa => Str,
 );
 has project_path => (
   is => 'rw',