use Moose::Role;
-requires 'match', 'match_captures';
+requires 'match', 'match_captures', 'list_extra_info';
around ['match','match_captures'], sub {
my ($orig, $self, $ctx, @args) = @_;
sub allowed_http_methods { @{shift->attributes->{Method}||[]} }
+around 'list_extra_info', sub {
+ my ($orig, $self, @args) = @_;
+ return {
+ %{ $self->$orig(@args) },
+ +{ HTTP_METHODS => [sort $self->allowed_http_methods] }
+ };
+};
+
1;
=head1 NAME
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
+
+Adds a key => [@values] "HTTP_METHODS" whose value is an ArrayRef of sorted
+allowed methods to the ->list_extra_info HashRef. This is used primarily for
+debugging output.
+
=head2 _has_expected_http_method ($expected)
Private method which returns 1 if C<$expected> matches one of the allowed