# Remember to update this in Catalyst::Runtime as well!
-our $VERSION = '5.80020';
+our $VERSION = '5.80021';
+our $PRETTY_VERSION = $VERSION;
+
$VERSION = eval $VERSION;
sub import {
if ( $class->debug ) {
my $name = $class->config->{name} || 'Application';
- $class->log->info("$name powered by Catalyst $Catalyst::VERSION");
+ $class->log->info("$name powered by Catalyst $Catalyst::PRETTY_VERSION");
}
# Make sure that the application class becomes immutable at this point,
return 1; # Explicit return true as people have __PACKAGE__->setup as the last thing in their class. HATE.
}
-
=head2 $app->setup_finalize
-A hook to attach modifiers to.
-Using C<< after setup => sub{}; >> doesn't work, because of quirky things done for plugin setup.
-Also better than C< setup_finished(); >, as that is a getter method.
-
- sub setup_finalize {
+A hook to attach modifiers to. This method does not do anything except set the
+C<setup_finished> accessor.
- my $app = shift;
-
- ## do stuff, i.e., determine a primary key column for sessions stored in a DB
+Applying method modifiers to the C<setup> method doesn't work, because of quirky thingsdone for plugin setup.
- $app->next::method(@_);
+Example:
+ after setup_finalize => sub {
+ my $app = shift;
- }
+ ## do stuff here..
+ };
=cut
( scalar @args && ref $args[$#args] eq 'HASH' ? pop @args : {} );
carp "uri_for called with undef argument" if grep { ! defined $_ } @args;
+ foreach my $arg (@args) {
+ utf8::encode($arg) if utf8::is_utf8($arg);
+ }
s/([^$URI::uric])/$URI::Escape::escapes{$1}/go for @args;
if (blessed $path) { # Action object only.
s|/|%2F|g for @args;
undef($path) if (defined $path && $path eq '');
- my $params =
- ( scalar @args && ref $args[$#args] eq 'HASH' ? pop @args : {} );
-
- carp "uri_for called with undef argument" if grep { ! defined $_ } @args;
-
- foreach my $arg (@args) {
- utf8::encode($arg) if utf8::is_utf8($arg);
- }
- s/([^$URI::uric])/$URI::Escape::escapes{$1}/go for @args;
- s|/|%2F| for @args;
-
unshift(@args, $path);
unless (defined $path && $path =~ s!^/!!) { # in-place strip
(map {
my $param = "$_";
utf8::encode( $param ) if utf8::is_utf8($param);
+ # using the URI::Escape pattern here so utf8 chars survive
$param =~ s/([^A-Za-z0-9\-_.!~*'() ])/$URI::Escape::escapes{$1}/go;
$param =~ s/ /+/g;
"${key}=$param"; } ( ref $val eq 'ARRAY' ? @$val : $val ));