Fixing Makefile.PL, RT#42859
jshirley [Wed, 28 Jan 2009 16:59:16 +0000 (16:59 +0000)]
Makefile.PL
lib/Catalyst/Action/REST.pm
lib/Catalyst/Request/REST.pm
t/catalyst-action-rest.t
t/catalyst-action-serialize-accept.t

index db75295..7323e1d 100644 (file)
@@ -5,7 +5,7 @@ perl_version '5.8.1';
 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);
index f4105aa..f8621da 100644 (file)
@@ -18,7 +18,7 @@ use Catalyst::Controller::REST;
 
 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
index 40a9a39..447680e 100644 (file)
@@ -10,7 +10,7 @@ package Catalyst::Request::REST;
 use strict;
 use warnings;
 
-use base 'Catalyst::Request';
+use base qw/Catalyst::Request Class::Accessor::Fast/;
 use HTTP::Headers::Util qw(split_header_words);
 
 
@@ -35,8 +35,6 @@ methods are all related to the content types accepted by the client.
 
 =head1 METHODS
 
-=over 4 data
-
 If the request went through the Deserializer action, this method will
 returned the deserialized data structure.
 
@@ -44,6 +42,8 @@ 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
@@ -141,10 +141,16 @@ sub accepts {
     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.
index 8534732..5ace007 100644 (file)
@@ -81,6 +81,15 @@ sub not_implemented_not_implemented {
     $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 ) = @_;
 
@@ -135,6 +144,9 @@ is( $options_res->code, 200, "OPTIONS request handler succeeded" );
 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(
index 13dead9..7778059 100644 (file)
@@ -82,7 +82,7 @@ EOH
 }
 
 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');