# Remember to update this in Catalyst::Runtime as well!
-our $VERSION = '5.90049_004';
+our $VERSION = '5.90051';
sub import {
my ( $class, @arguments ) = @_;
EOF
}
+ # Call plugins setup, this is stupid and evil.
+ # Also screws C3 badly on 5.10, hack to avoid.
+ {
+ no warnings qw/redefine/;
+ local *setup = sub { };
+ $class->setup unless $Catalyst::__AM_RESTARTING;
+ }
+
+ # Initialize our data structure
+ $class->components( {} );
+
+ $class->setup_components;
+
if ( $class->debug ) {
my @plugins = map { "$_ " . ( $_->VERSION || '' ) } $class->registered_plugins;
? $class->log->debug(qq/Found home "$home"/)
: $class->log->debug(qq/Home "$home" doesn't exist/)
: $class->log->debug(q/Couldn't find home/);
- }
- # Call plugins setup, this is stupid and evil.
- # Also screws C3 badly on 5.10, hack to avoid.
- {
- no warnings qw/redefine/;
- local *setup = sub { };
- $class->setup unless $Catalyst::__AM_RESTARTING;
- }
-
- # Initialize our data structure
- $class->components( {} );
-
- $class->setup_components;
-
- if ( $class->debug ) {
my $column_width = Catalyst::Utils::term_width() - 8 - 9;
my $t = Text::SimpleTable->new( [ $column_width, 'Class' ], [ 8, 'Type' ] );
for my $comp ( sort keys %{ $class->components } ) {
# Support skipping finalize for psgix.io style 'jailbreak'. Used to support
# stuff like cometd and websockets
- if($c->request->has_io_fh) {
+ if($c->request->_has_io_fh) {
$c->log_response;
return;
}
=head2 default_data_handlers
-Default Data Handlers that come bundled with L<Catalyst>. Currently there is
-only one default data handler, for 'application/json'. This is used to parse
-incoming JSON into a Perl data structure. It used either L<JSON::MaybeXS> or
-L<JSON>, depending on which is installed. This allows you to fail back to
-L<JSON:PP>, which is a Pure Perl JSON decoder, and has the smallest dependency
-impact.
+Default Data Handlers that come bundled with L<Catalyst>. Currently there are
+only two default data handlers, for 'application/json' and an alternative to
+'application/x-www-form-urlencoded' which supposed nested form parameters via
+L<CGI::Struct> or via L<CGI::Struct::XS> IF you've installed it.
+
+The 'application/json' data handler is used to parse incoming JSON into a Perl
+data structure. It used either L<JSON::MaybeXS> or L<JSON>, depending on which
+is installed. This allows you to fail back to L<JSON:PP>, which is a Pure Perl
+JSON decoder, and has the smallest dependency impact.
Because we don't wish to add more dependencies to L<Catalyst>, if you wish to
use this new feature we recommend installing L<JSON> or L<JSON::MaybeXS> in
return +{
'application/x-www-form-urlencoded' => sub {
my ($fh, $req) = @_;
- my $params = $req->_use_hash_multivalue ? $self->body_parameters->mixed : $self->body_parameters;
+ my $params = $req->_use_hash_multivalue ? $req->body_parameters->mixed : $req->body_parameters;
Class::Load::load_first_existing_class('CGI::Struct::XS', 'CGI::Struct')
- ->('build_cgi_struct')->($params)
+ ->can('build_cgi_struct')->($params);
},
'application/json' => sub {
Class::Load::load_first_existing_class('JSON::MaybeXS', 'JSON')