Subject: | Param::Validate import is subclass unfriendly |
When subclassing Controller::REST with code that provides its own
validate() method doesn't play well with the validate() function that is
imported by Param::Validate
Attached is a patch that removes the import, and calls
Params::Validate::validate directly.
Subject: | REST-1116.patch |
=== lib/Catalyst/Controller/REST.pm
==================================================================
--- lib/Catalyst/Controller/REST.pm (revision 1116)
+++ lib/Catalyst/Controller/REST.pm (local)
@@ -208,7 +208,7 @@
use strict;
use warnings;
use base 'Catalyst::Controller';
-use Params::Validate qw(:all);
+use Params::Validate ();
__PACKAGE__->mk_accessors(qw(serialize));
@@ -255,7 +255,7 @@
sub status_ok {
my $self = shift;
my $c = shift;
- my %p = validate( @_, { entity => 1, }, );
+ my %p = Params::Validate::validate( @_, { entity => 1, }, );
$c->response->status(200);
$self->_set_entity( $c, $p{'entity'} );
@@ -285,7 +285,7 @@
sub status_created {
my $self = shift;
my $c = shift;
- my %p = validate(
+ my %p = Params::Validate::validate(
@_,
{
location => { type => SCALAR | OBJECT },
@@ -323,7 +323,7 @@
sub status_accepted {
my $self = shift;
my $c = shift;
- my %p = validate( @_, { entity => 1, }, );
+ my %p = Params::Validate::validate( @_, { entity => 1, }, );
$c->response->status(202);
$self->_set_entity( $c, $p{'entity'} );
@@ -348,7 +348,7 @@
sub status_bad_request {
my $self = shift;
my $c = shift;
- my %p = validate( @_, { message => { type => SCALAR }, }, );
+ my %p = Params::Validate::validate( @_, { message => { type => SCALAR }, }, );
$c->response->status(400);
$c->log->debug( "Status Bad Request: " . $p{'message'} );
@@ -374,7 +374,7 @@
sub status_not_found {
my $self = shift;
my $c = shift;
- my %p = validate( @_, { message => { type => SCALAR }, }, );
+ my %p = Params::Validate::validate( @_, { message => { type => SCALAR }, }, );
$c->response->status(404);
$c->log->debug( "Status Not Found: " . $p{'message'} );