More precise error messages that 'serialize' is a deprecated configuration key. POD...
[catagits/Catalyst-Action-REST.git] / lib / Catalyst / Action / SerializeBase.pm
index ac4934f..e616f8a 100644 (file)
@@ -11,11 +11,15 @@ use warnings;
 
 use base 'Catalyst::Action';
 use Module::Pluggable::Object;
-use Data::Dump qw(dump);
 use Catalyst::Request::REST;
+use Catalyst::Utils ();
 
-Catalyst->request_class('Catalyst::Request::REST')
-    unless Catalyst->request_class->isa('Catalyst::Request::REST');
+sub new {
+  my $class  = shift;
+  my $config = shift;
+  Catalyst::Request::REST->_insert_self_into( $config->{class} );
+  return $class->SUPER::new($config, @_);
+}
 
 __PACKAGE__->mk_accessors(qw(_serialize_plugins _loaded_plugins));
 
@@ -45,12 +49,15 @@ sub _load_content_plugins {
 
     my $config;
     
-    if ( exists $controller->config->{'serialize'} ) {
-        $c->log->info("Using deprecated configuration for Catalyst::Action::REST!");
-        $c->log->info("Please see perldoc Catalyst::Action::REST for the update guide");
-        $config = $controller->config->{'serialize'};
+    if ( exists $controller->{'serialize'} ) {
+        $c->log->info("Catalyst::Action::REST - deprecated use of 'serialize' for configuration.");
+        $c->log->info("Please see 'CONFIGURATION' in Catalyst::Controller::REST.");
+        $config = $controller->{'serialize'};
+        # if they're using the deprecated config, they may be expecting a
+        # default mapping too.
+        $config->{map} ||= $controller->{map};
     } else {
-        $config = $controller->config;
+        $config = $controller;
     }
     $map = $config->{'map'};
 
@@ -181,4 +188,3 @@ Marchex, Inc. paid me while I developed this module.  (http://www.marchex.com)
 You may distribute this code under the same terms as Perl itself.
 
 =cut
-