Commit | Line | Data |
7adfd53f |
1 | package Reaction::Types::File; |
2 | |
e739c9a2 |
3 | use MooseX::Types |
4 | -declare => [qw/File/]; |
7adfd53f |
5 | |
e739c9a2 |
6 | use MooseX::Types::Moose 'Object'; |
7adfd53f |
7 | use Catalyst::Request::Upload; |
8 | |
bded3808 |
9 | subtype File |
10 | => as Object |
4ed8c1eb |
11 | => where { $_->isa('Path::Class::File') } |
12 | => message { "Must be a file" }; |
13 | |
14 | subtype Upload |
15 | => as Object |
7adfd53f |
16 | => where { $_->isa('Catalyst::Request::Upload') } |
17 | => message { "Must be a file" }; |
18 | |
4ed8c1eb |
19 | coerce File |
20 | => from Upload |
21 | => via { Path::Class::File->new($_->tempname) }; |
22 | |
7adfd53f |
23 | 1; |
24 | |
25 | =head1 NAME |
26 | |
27 | Reaction::Types::File |
28 | |
29 | =head1 DESCRIPTION |
30 | |
31 | =over |
32 | |
33 | =item * File |
34 | |
35 | =back |
36 | |
37 | =head1 SEE ALSO |
38 | |
39 | =over |
40 | |
41 | =item * L<Reaction::Types::Core> |
42 | |
43 | =back |
44 | |
45 | =head1 AUTHORS |
46 | |
47 | See L<Reaction::Class> for authors. |
48 | |
49 | =head1 LICENSE |
50 | |
51 | See L<Reaction::Class> for the license. |
52 | |
53 | =cut |