From: John Napiorkowski Date: Mon, 18 Feb 2013 18:51:01 +0000 (-0500) Subject: removed code I should not have checkedin X-Git-Tag: 5.90020~2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=02459769c2a00053a6dd3869ea741de61294deca removed code I should not have checkedin --- diff --git a/lib/Catalyst/ActionRole/BodyParser.pm b/lib/Catalyst/ActionRole/BodyParser.pm deleted file mode 100644 index 4f2a0d5..0000000 --- a/lib/Catalyst/ActionRole/BodyParser.pm +++ /dev/null @@ -1,135 +0,0 @@ -package Catalyst::ActionRole::HTTPMethods; - -use Moose::Role; - -requires 'match', 'match_captures', 'list_extra_info'; - -around ['match','match_captures'], sub { - my ($orig, $self, $ctx, @args) = @_; - my $expected = $self->_normalize_expected_http_method($ctx->req); - return $self->_has_expected_http_method($expected) ? - $self->$orig($ctx, @args) : - 0; -}; - -sub _normalize_expected_http_method { - my ($self, $req) = @_; - return $req->header('X-HTTP-Method') || - $req->header('X-HTTP-Method-Override') || - $req->header('X-METHOD-OVERRIDE') || - $req->method; -} - -sub _has_expected_http_method { - my ($self, $expected) = @_; - return 1 unless scalar(my @allowed = $self->allowed_http_methods); - return scalar(grep { lc($_) eq lc($expected) } @allowed) ? - 1 : 0; -} - -sub allowed_http_methods { @{shift->attributes->{Method}||[]} } - -sub list_extra_info { sort shift->allowed_http_methods } - -1; - -=head1 NAME - -Catalyst::ActionRole::HTTPMethods - Match on HTTP Methods - -=head1 SYNOPSIS - - package MyApp::Web::Controller::MyController; - - use Moose; - use MooseX::MethodAttributes; - - extends 'Catalyst::Controller'; - - sub user_base : Chained('/') CaptureArg(0) { ... } - - sub get_user : Chained('user_base') Args(1) GET { ... } - sub post_user : Chained('user_base') Args(1) POST { ... } - sub put_user : Chained('user_base') Args(1) PUT { ... } - sub delete_user : Chained('user_base') Args(1) DELETE { ... } - sub head_user : Chained('user_base') Args(1) HEAD { ... } - sub option_user : Chained('user_base') Args(1) OPTION { ... } - sub option_user : Chained('user_base') Args(1) PATCH { ... } - - - sub post_and_put : Chained('user_base') POST PUT Args(1) { ... } - sub method_attr : Chained('user_base') Method('DELETE') Args(0) { ... } - - __PACKAGE__->meta->make_immutable; - -=head1 DESCRIPTION - -This is an action role that lets your L match on standard -HTTP methods, such as GET, POST, etc. - -Since most web browsers have limited support for rich HTTP Method vocabularies -we also support setting the expected match method via the follow non standard -but widely used http extensions. Our support for these should not be taken as -an endorsement of the technique. Rt is merely a reflection of our desire to -work well with existing systems and common client side tools. - -=over 4 - -=item X-HTTP-Method (Microsoft) - -=item X-HTTP-Method-Override (Google/GData) - -=item X-METHOD-OVERRIDE (IBM) - -=back - -Please note the insanity of overriding a GET request with a DELETE override... -Rational practices suggest that using POST with overrides to emulate PUT and -DELETE can be an acceptable way to deal with client limitations and security -rules on your proxy server. I recommend going no further. - -=head1 REQUIRES - -This role requires the following methods in the consuming class. - -=head2 match - -=head2 match_captures - -Returns 1 if the action matches the existing request and zero if not. - -=head1 METHODS - -This role defines the following methods - -=head2 match - -=head2 match_captures - -Around method modifier that return 1 if the request method matches one of the -allowed methods (see L) and zero otherwise. - -=head2 allowed_http_methods - -An array of strings that are the allowed http methods for matching this action -normalized as noted above (using X-Method* overrides). - -=head2 list_extra_info - -Returns an array of the allowed HTTP Methods, sorted. - -=head2 _has_expected_http_method ($expected) - -Private method which returns 1 if C<$expected> matches one of the allowed -in L and zero otherwise. - -=head1 AUTHORS - -Catalyst Contributors, see Catalyst.pm - -=head1 COPYRIGHT - -This library is free software. You can redistribute it and/or modify it under -the same terms as Perl itself. - -=cut