X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FReaction%2FTypes%2FFile.pm;h=95fd6798592964fd8dd69a7b2f363d3cfdbd331b;hb=2efa9b8d5697179877d7f13dc3821a77f1af9262;hp=dc17e36cfbda2ee578c07a258e1a8d4e5c076287;hpb=7adfd53f17f66ffe93763e944ed1d3fc52a369dc;p=catagits%2FReaction.git diff --git a/lib/Reaction/Types/File.pm b/lib/Reaction/Types/File.pm index dc17e36..95fd679 100644 --- a/lib/Reaction/Types/File.pm +++ b/lib/Reaction/Types/File.pm @@ -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;