Add conflict line to Makefile.PL for Component::ACCEPT_CONTEXT
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Request / Upload.pm
index 384d33a..ed3b0f5 100644 (file)
@@ -13,7 +13,7 @@ has headers => (is => 'rw');
 has size => (is => 'rw');
 has tempname => (is => 'rw');
 has type => (is => 'rw');
-has basename => (is => 'rw');
+has basename => (is => 'ro', lazy_build => 1);
 
 has fh => (
   is => 'rw',
@@ -33,6 +33,15 @@ has fh => (
   },
 );
 
+sub _build_basename {
+    my $self = shift;
+    my $basename = $self->filename;
+    $basename =~ s|\\|/|g;
+    $basename = ( File::Spec::Unix->splitpath($basename) )[2];
+    $basename =~ s|[^\w\.-]+|_|g;
+    return $basename;
+}
+
 no Moose;
 
 =head1 NAME
@@ -41,6 +50,8 @@ Catalyst::Request::Upload - handles file upload requests
 
 =head1 SYNOPSIS
 
+    my $upload = $c->req->upload('field');
+
     $upload->basename;
     $upload->copy_to;
     $upload->fh;
@@ -138,19 +149,6 @@ sub slurp {
     return $content;
 }
 
-sub basename {
-    my $self = shift;
-    unless ( $self->{basename} ) {
-        my $basename = $self->filename;
-        $basename =~ s|\\|/|g;
-        $basename = ( File::Spec::Unix->splitpath($basename) )[2];
-        $basename =~ s|[^\w\.-]+|_|g;
-        $self->{basename} = $basename;
-    }
-
-    return $self->{basename};
-}
-
 =head2 $upload->basename
 
 Returns basename for C<filename>.