X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FAction%2FSerializeBase.pm;h=b7a6765d3186e9657a443efc2464db3380d7fe75;hb=d34635d1f87b7a53a522583fc6c91e76062709fd;hp=7dfe1e8db70f54e3cc20f3664e69c790937df9a9;hpb=d4611771994693e9145e19c00c4b2d5bc7b485eb;p=catagits%2FCatalyst-Action-REST.git diff --git a/lib/Catalyst/Action/SerializeBase.pm b/lib/Catalyst/Action/SerializeBase.pm index 7dfe1e8..b7a6765 100644 --- a/lib/Catalyst/Action/SerializeBase.pm +++ b/lib/Catalyst/Action/SerializeBase.pm @@ -1,6 +1,6 @@ # # Catlyst::Action::SerializeBase.pm -# Created by: Adam Jacob, Marchex, +# Created by: Adam Jacob, Marchex, # # $Id$ @@ -36,8 +36,6 @@ sub _load_content_plugins { $self->_serialize_plugins( \@plugins ); } - my $content_type = $c->request->preferred_content_type || ''; - # Finally, we load the class. If you have a default serializer, # and we still don't have a content-type that exists in the map, # we'll use it. @@ -57,7 +55,10 @@ sub _load_content_plugins { $map = $config->{'map'}; # If we don't have a handler for our preferred content type, try # the default - if ( ! exists $map->{$content_type} ) { + + my ($content_type) = grep { $map->{$_} } @{$c->request->accepted_content_types}; + + unless ( defined $content_type ) { if( exists $config->{'default'} ) { $content_type = $config->{'default'} ; } else { @@ -65,6 +66,12 @@ sub _load_content_plugins { } } + # carp about old text/x-json + if ($content_type eq 'text/x-json') { + $c->log->info('Using deprecated text/x-json content-type.'); + $c->log->info('Use application/json instead!'); + } + if ( exists( $map->{$content_type} ) ) { my $mc; if ( ref( $map->{$content_type} ) eq "ARRAY" ) {