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