From 4b5041c01dc5fa992ca8bdb69f90b9eef7f5ffda Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 10 Jun 2013 10:39:10 -0500 Subject: [PATCH] fix warning with oo version of Plack::Builder in development env --- lib/Plack/Builder.pm | 2 ++ t/Plack-Builder/oo_interface.t | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/lib/Plack/Builder.pm b/lib/Plack/Builder.pm index f6c06e8bb..1c7e0ef77 100644 --- a/lib/Plack/Builder.pm +++ b/lib/Plack/Builder.pm @@ -56,6 +56,8 @@ sub to_app { if ($app) { $self->wrap($app); } elsif ($self->{_urlmap}) { + $self->{_urlmap} = $self->{_urlmap}->to_app + if Scalar::Util::blessed($self->{_urlmap}); $self->wrap($self->{_urlmap}); } else { Carp::croak("to_app() is called without mount(). No application to build."); diff --git a/t/Plack-Builder/oo_interface.t b/t/Plack-Builder/oo_interface.t index 0dd27c933..983dd214e 100644 --- a/t/Plack-Builder/oo_interface.t +++ b/t/Plack-Builder/oo_interface.t @@ -62,4 +62,16 @@ sub test_app { like $warn[0], qr/mappings to be ignored/; } +{ + local $ENV{PLACK_ENV} = 'development'; + my @warn; + local $SIG{__WARN__} = sub { push @warn, @_ }; + my $builder = Plack::Builder->new; + $builder->add_middleware('Runtime'); + $builder->add_middleware('XFramework', framework => 'Plack::Builder'); + $builder->mount('/app/foo/bar' => $app); + test_app $builder->to_app; + is_deeply(\@warn, [], "no warnings"); +} + done_testing;