do not include .git directory
[catagits/Reaction.git] / lib / Reaction / Types / File.pm
index dc17e36..95fd679 100644 (file)
@@ -1,13 +1,17 @@
 package Reaction::Types::File;
 
-use Moose::Util::TypeConstraints;
+use MooseX::Types -declare => [qw/File Upload/];
 
-use Catalyst::Request::Upload;
+use MooseX::Types::Moose 'Object';
+use Path::Class::File;
 
-subtype 'File'
-  => as 'Object'
-  => where { $_->isa('Catalyst::Request::Upload') }
-  => message { "Must be a file" };
+subtype File, as Object, where { $_->isa('Path::Class::File') },
+  message { "Must be a file" };
+
+subtype Upload, as Object, where { $_->isa('Catalyst::Request::Upload') },
+  message { "Must be a file" };
+
+coerce File, from Upload, via { Path::Class::File->new( $_->tempname ) };
 
 1;