X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FActionRole%2FConsumesContent.pm;h=28b535071b7d6287702512783e149593bcf9b673;hb=fe82a51db5b44026493ce2a6e05c0f233ddfb4dd;hp=4d15ac2b6dbce93c1a0525aa4e869fd33e8ec4a6;hpb=e72a3cd6e12d8b9594dcfdddf13c1fbabdffb900;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/ActionRole/ConsumesContent.pm b/lib/Catalyst/ActionRole/ConsumesContent.pm index 4d15ac2..28b5350 100644 --- a/lib/Catalyst/ActionRole/ConsumesContent.pm +++ b/lib/Catalyst/ActionRole/ConsumesContent.pm @@ -2,7 +2,7 @@ package Catalyst::ActionRole::ConsumesContent; use Moose::Role; -requires 'match', 'match_captures'; +requires 'match', 'match_captures', 'list_extra_info'; has allowed_content_types => ( is=>'ro', @@ -65,7 +65,7 @@ sub can_consume { around 'list_extra_info' => sub { my ($orig, $self, @args) = @_; return { - %{ $self->$orig(@args) }, + %{ $self->$orig(@args) }, CONSUMES => $self->allowed_content_types, }; }; @@ -87,21 +87,21 @@ Catalyst::ActionRole::ConsumesContent - Match on HTTP Request Content-Type sub is_json : Chained('start') Consumes('application/json') { ... } sub is_urlencoded : Chained('start') Consumes('application/x-www-form-urlencoded') { ... } sub is_multipart : Chained('start') Consumes('multipart/form-data') { ... } - + ## Alternatively, for common types... sub is_json : Chained('start') Consume(JSON) { ... } - sub is_urlencoded : Chained('start') Consume(HTMLForm)URLEncoded { ... } - sub is_multipart : Chained('start') ConsumeFormData { ... } + sub is_urlencoded : Chained('start') Consumes(UrlEncoded) { ... } + sub is_multipart : Chained('start') Consumes(Multipart) { ... } ## Or allow more than one type - + sub is_more_than_one : Chained('start') : Consumes('application/x-www-form-urlencoded') : Consumes('multipart/form-data') { - ## ... + ## ... } 1; @@ -109,7 +109,7 @@ Catalyst::ActionRole::ConsumesContent - Match on HTTP Request Content-Type =head1 DESCRIPTION This is an action role that lets your L match on the content -type of the incoming request. +type of the incoming request. Generally when there's a PUT or POST request, there's a request content body with a matching MIME content type. Commonly this will be one of the types @@ -148,6 +148,10 @@ An array of strings that are the allowed content types for matching this action. Boolean. Does the current request match content type with what this actionrole can consume? +=head2 list_extra_info + +Add the accepted content type to the debug screen. + =head1 AUTHORS Catalyst Contributors, see Catalyst.pm