Merge branch 'master' of git://github.com/jshirley/catalyst-action-rest
[catagits/Catalyst-Action-REST.git] / lib / Catalyst / Action / SerializeBase.pm
index ac4934f..93108bb 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'} ) {
+    if ( exists $controller->{'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'};
+        $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'};