drop namespace::autoclean
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Response.pm
index e87ba61..ae6049d 100644 (file)
@@ -3,11 +3,12 @@ package Catalyst::Response;
 use Moose;
 use HTTP::Headers;
 use Moose::Util::TypeConstraints;
-use namespace::autoclean;
 use Scalar::Util 'blessed';
 use Catalyst::Response::Writer;
 use Catalyst::Utils ();
 
+use namespace::clean -except => ['meta'];
+
 with 'MooseX::Emulate::Class::Accessor::Fast';
 
 our $DEFAULT_ENCODE_CONTENT_TYPE_MATCH = qr{text|xml$|javascript$};
@@ -103,12 +104,24 @@ has _context => (
   clearer => '_clear_context',
 );
 
-before [qw(status headers content_encoding content_length content_type header)] => sub {
+before [qw(status headers content_encoding content_length content_type )] => sub {
+  my $self = shift;
+
+  $self->_context->log->warn(
+    "Useless setting a header value after finalize_headers and the response callback has been called." .
+    " Since we don't support tail headers this will not work as you might expect." )
+      if ( $self->_context && $self->finalized_headers && !$self->_has_response_cb && @_ );
+};
+
+# This has to be different since the first param to ->header is the header name and presumably
+# you should be able to request the header even after finalization, just not try to change it.
+before 'header' => sub {
   my $self = shift;
+  my $header = shift;
 
-  $self->_context->log->warn( 
+  $self->_context->log->warn(
     "Useless setting a header value after finalize_headers and the response callback has been called." .
-    " Not what you want." )
+    " Since we don't support tail headers this will not work as you might expect." )
       if ( $self->_context && $self->finalized_headers && !$self->_has_response_cb && @_ );
 };
 
@@ -544,7 +557,7 @@ finalized (there isn't one anyway) and you need to call the close method.
 Prints @data to the output stream, separated by $,.  This lets you pass
 the response object to functions that want to write to an L<IO::Handle>.
 
-=head2 $self->finalize_headers($c)
+=head2 $res->finalize_headers()
 
 Writes headers to response if not already written