name 'Catalyst-Action-REST';
all_from 'lib/Catalyst/Action/REST.pm';
-requires('Catalyst' => '5.7001');
+requires('Catalyst-Runtime' => '5.7001');
requires('Params::Validate' => '0.76');
requires('YAML::Syck' => '0.67');
requires('Module::Pluggable::Object' => undef);
BEGIN { require 5.008001; }
-our $VERSION = '0.65';
+our $VERSION = '0.67';
# This is wrong in several ways. First, there's no guarantee that
# Catalyst.pm has not been subclassed. Two, there's no guarantee that
use strict;
use warnings;
-use base 'Catalyst::Request';
+use base qw/Catalyst::Request Class::Accessor::Fast/;
use HTTP::Headers::Util qw(split_header_words);
=head1 METHODS
-=over 4 data
-
If the request went through the Deserializer action, this method will
returned the deserialized data structure.
__PACKAGE__->mk_accessors(qw(data accept_only));
+=over 4
+
=item accepted_content_types
Returns an array reference of content types accepted by the
return grep { $_ eq $type } @{ $self->accepted_content_types };
}
+=back
+
=head1 AUTHOR
Adam Jacob <adam@stalecoffee.org>, with lots of help from mst and jrockway
+=head1 MAINTAINER
+
+J. Shirley <jshirley@cpan.org>
+
=head1 LICENSE
You may distribute this code under the same terms as Perl itself.
$c->forward('ok');
}
+sub not_modified : Local : ActionClass('REST') { }
+
+sub not_modified_GET {
+ my ( $self, $c ) = @_;
+ $c->res->status(304);
+ return 1;
+}
+
+
sub ok : Private {
my ( $self, $c ) = @_;
is( $options_res->header('allow'),
"GET", "OPTIONS request allow header properly set." );
+my $modified_res = request( $t->get( url => '/not_modified' ) );
+is( $modified_res->code, 304, "Not Modified request handler succeeded" );
+
my $ni_res = request( $t->delete( url => '/not_implemented' ) );
is( $ni_res->code, 200, "Custom not_implemented handler succeeded" );
is(
}
SKIP: {
- eval 'require JSON';
+ eval 'require JSON 2.12;';
skip "can't test application/json without JSON support", 3 if $@;
my $json = JSON->new;
my $at = Test::Rest->new('content_type' => 'text/doesnt-exist');