-#
-# Catlyst::Action::Deserialize
-# Created by: Adam Jacob, Marchex, <adam@marchex.com>
-#
-# $Id$
-
package Catalyst::Action::Deserialize;
-use strict;
-use warnings;
+use Moose;
+use namespace::autoclean;
-use base 'Catalyst::Action::SerializeBase';
+extends 'Catalyst::Action::SerializeBase';
use Module::Pluggable::Object;
+use MRO::Compat;
+
+our $VERSION = '0.86';
+$VERSION = eval $VERSION;
-__PACKAGE__->mk_accessors(qw(plugins));
+has plugins => ( is => 'rw' );
sub execute {
my $self = shift;
my ( $controller, $c ) = @_;
- my @demethods = qw(POST PUT OPTIONS);
+ my @demethods = qw(POST PUT OPTIONS DELETE);
my $method = $c->request->method;
if ( grep /^$method$/, @demethods ) {
my ( $sclass, $sarg, $content_type ) =
}
}
- $self->NEXT::execute(@_);
+ $self->maybe::next::method(@_);
return 1;
}
+__PACKAGE__->meta->make_immutable;
+
=head1 NAME
Catalyst::Action::Deserialize - Deserialize Data in a Request
package Foo::Controller::Bar;
__PACKAGE__->config(
- serialize => {
- 'default' => 'YAML',
- 'stash_key' => 'rest',
- 'map' => {
- 'text/x-yaml' => 'YAML',
- 'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ],
- },
- }
+ 'default' => 'text/x-yaml',
+ 'stash_key' => 'rest',
+ 'map' => {
+ 'text/x-yaml' => 'YAML',
+ 'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ],
+ },
);
sub begin :ActionClass('Deserialize') {}
The serializer is selected by introspecting the requests content-type
header.
-It requires that your Catalyst controller have a "serialize" entry
-in it's configuration. See L<Catalyst::Action::Serialize> for the details.
-
The specifics of deserializing each content-type is implemented as
a plugin to L<Catalyst::Action::Deserialize>. You can see a list
of currently implemented plugins in L<Catalyst::Controller::REST>.
L<Catalyst::Action::Serialize>, L<Catalyst::Action::REST>
-=head1 AUTHOR
-
-Adam Jacob <adam@stalecoffee.org>, with lots of help from mst and jrockway
+=head1 AUTHORS
-Marchex, Inc. paid me while I developed this module. (http://www.marchex.com)
+See L<Catalyst::Action::REST> for authors.
=head1 LICENSE
You may distribute this code under the same terms as Perl itself.
=cut
-
-1;