We clearly haven't thought about this case. I really wish we could clean up the plugin completely. It still isn't what we want it to be. :(
Could you please open an issue for this? On Wed, Oct 2, 2013 at 12:47 PM, Marco Pessotto <[email protected]> wrote: > > Hello all! > > I have a question about the plugin nesting in Dancer2. I'd like to know > if using a plugin (notably the Dancer2::Plugin::Database) inside another > plugin is doable or deprecated or hacky or unsupported or just can't > work. > > This used to work with Dancer1, but now it's unclear if and how it > should work, as we don't do "use Dancer qw/:syntax/" anymore. > > The app at runtime seems to work, I get the expected output of the > dumped D2::P::D object, but in a Dancer2 qw/:script/ it fails with a > "deep recursion" error. > > use Dancer2 ":script"; > use Dancer2::Plugin::Test; > print to_dumper(hello); > > perl -I lib t/script.t > 1..1 > DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at > /home/melmoth/perl5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/Dancer2/Plugin/Database.pm > line 57. > DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at > /tmp/MyApp/lib/Dancer2/Plugin/Test.pm line 6. > DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at > /tmp/MyApp/lib/Dancer2/Plugin/Test.pm line 6. > DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at > /tmp/MyApp/lib/Dancer2/Plugin/Test.pm line 6. > DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at > /tmp/MyApp/lib/Dancer2/Plugin/Test.pm line 6. > DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at > /tmp/MyApp/lib/Dancer2/Plugin/Test.pm line 6. > Deep recursion on anonymous subroutine at > /home/melmoth/perl5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/Dancer2/Core/Role/DSL.pm > line 72. > # Looks like your test exited with 255 before it could output anything. > > The test app is the following (also packed in the tarball attached with > the tests). > > conf: > ### cut #### > plugins: > Database: > driver: SQLite > database: 'foo.sqlite' > ### cut #### > > app: > > ### cut #### > > package MyApp; > use strict; > use warnings; > use Dancer2; > use Dancer2::Plugin::Test; > > our $VERSION = '0.1'; > > get '/' => sub { > my $dbh = hello; > return to_dumper($dbh); > }; > > true; > > ### cut #### > > plugin: > > ### cut #### > package Dancer2::Plugin::Test; > use strict; > use warnings; > > use Dancer2::Plugin; > use Dancer2::Plugin::Database; > > register hello => sub { > my $dsl = shift; > return database; > }; > > register_plugin; > 1; > ### cut #### > > Thanks in advance > > Best wishes > > > > > > > -- > Marco > > _______________________________________________ > dancer-users mailing list > [email protected] > http://lists.preshweb.co.uk/mailman/listinfo/dancer-users > >
_______________________________________________ dancer-users mailing list [email protected] http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
