=over 4
-=item * L<Catalyst::Manual::Intro> for how they affect website authors
+=item * L<Catalyst::Manual::Intro> for how they affect application authors
=item * L<Catalyst::DispatchType> for implementation information.
my $has_unattached_actions;
my $unattached_actions = Text::SimpleTable->new(
- [ 35, 'Private' ], [ 36, 'Missing parent' ],
+ [ 35, 'Private' ], [ $column_width, 'Missing parent' ],
);
ENDPOINT: foreach my $endpoint (
}
if ($parent ne '/') {
$has_unattached_actions = 1;
- $unattached_actions->row('/'.$parents[0]->reverse, $parent);
+ $unattached_actions->row('/' . ($parents[0] || $endpoint)->reverse, $parent);
next ENDPOINT;
}
my @rows;
push(@rows, [ '', $name ]);
}
push(@rows, [ '', (@rows ? "=> " : '')."/${endpoint}" ]);
- $rows[0][0] = join('/', '', @parts);
+ $rows[0][0] = join('/', '', @parts) || '/';
$paths->row(@$_) for @rows;
}
if (my $cap = $curr->attributes->{CaptureArgs}) {
return undef unless @captures >= $cap->[0]; # not enough captures
if ($cap->[0]) {
- unshift(@parts, splice(@captures, -$cap->[0]));
+ unshift(@parts,
+ map { s/([^A-Za-z0-9\-_.!~*'()])/$URI::Escape::escapes{$1}/go; $_; }
+ splice(@captures, -$cap->[0]));
}
}
if (my $pp = $curr->attributes->{PartPath}) {
return undef if @captures; # fail for too many captures
return join('/', '', @parts);
-
+
}
=head2 $c->expand_action($action)