allow subdispatch to apply even when the url has no trailing slash
[catagits/Web-Simple.git] / lib / Web / Dispatch / Upload.pm
CommitLineData
05aafc1a 1use 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
441;