From fed9bc157ca3e60a06be9541dbdb0188f31f3d5f Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 17 Jul 2012 21:35:58 -0500 Subject: finish implementation of ::Upload --- lib/Web/Request/Upload.pm | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/Web/Request/Upload.pm b/lib/Web/Request/Upload.pm index ff3592c..a3d8d77 100644 --- a/lib/Web/Request/Upload.pm +++ b/lib/Web/Request/Upload.pm @@ -24,9 +24,25 @@ has filename => ( isa => 'Str', ); -sub basename { - ... -} +# XXX Path::Class, and just make this a delegation? +# would that work at all on win32? +has basename => ( + is => 'ro', + isa => 'Str', + lazy => 1, + default => sub { + my $self = shift; + + require File::Spec::Unix; + + my $basename = $self->{filename}; + $basename =~ s{\\}{/}g; + $basename = (File::Spec::Unix->splitpath($basename))[2]; + $basename =~ s{[^\w\.-]+}{_}g; + + return $basename; + }, +); __PACKAGE__->meta->make_immutable; no Moose; -- cgit v1.2.3-54-g00ecf