Commit | Line | Data |
05aafc1a |
1 | use strictures 1; |
2 | |
3 | { |
4 | package Web::Dispatch::Upload; |
659a3608 |
5 | require Plack::Request::Upload; |
6 | our @ISA = qw(Plack::Request::Upload); |
05aafc1a |
7 | use overload '""' => 'tempname', fallback => 1; |
8 | |
9 | sub is_upload { 1 } |
10 | |
11 | sub reason { '' } |
12 | } |
13 | |
14 | { |
15 | package Web::Dispatch::NotAnUpload; |
16 | |
17 | use overload '""' => '_explode', fallback => 1; |
18 | |
19 | sub new { |
20 | my ($class, %args) = @_; |
21 | bless { |
22 | filename => $args{filename}, |
23 | reason => $args{reason} |
24 | }, $class; |
25 | } |
26 | |
27 | sub is_upload { 0 } |
28 | |
29 | sub reason { $_[0]->{reason} } |
30 | |
31 | sub _explode { |
32 | die "Not actually an upload: ".$_[0]->{reason} |
33 | } |
34 | |
35 | sub filename { $_[0]->_explode } |
36 | sub headers { $_[0]->_explode } |
37 | sub size { $_[0]->_explode } |
38 | sub tempname { $_[0]->_explode } |
39 | sub path { $_[0]->_explode } |
40 | sub content_type { $_[0]->_explode } |
41 | sub type { $_[0]->_explode } |
42 | sub basename { $_[0]->_explode } |
43 | } |
44 | |
45 | 1; |