Can I dispatch my root thought multiple module ? I have in App::Main : hook before => sub { var xxx => "test"; } and in App::Root; get "/" => sub { return vars->{xxx} } But vars seems empty. In my bin/app.psgi I have : use Dancer; use App::Main; use App::Root; start;
----- Mail original ----- De: "Celogeek" <me@celogeek.com> À: "Dancer Mailing List" <dancer-users@perldancer.org> Envoyé: Vendredi 28 Décembre 2012 16:57:59 Objet: [dancer-users] Route dispatch Oh, they is a "context" thing. So multiple module can't share a context ? Can I dispatch my root thought multiple module ? I have in App::Main : hook before => sub { var xxx => "test"; } and in App::Root; get "/" => sub { return vars->{xxx} } But vars seems empty. In my bin/app.psgi I have : use Dancer; use App::Main; use App::Root; start; _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
Yuo are missing the semicolons after your sub declarations. Try it agian ;) On 28 December 2012 15:57, Celogeek <me@celogeek.com> wrote:
Can I dispatch my root thought multiple module ?
I have in App::Main :
hook before => sub { var xxx => "test"; }
and in App::Root;
get "/" => sub { return vars->{xxx} }
But vars seems empty.
In my bin/app.psgi I have :
use Dancer; use App::Main; use App::Root;
start;
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
it's just a not working short example :) but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main. So my App::Root doesn't have it. And it was the case in Dancer 1. I need to fully change my apps to make it work with Dancer2 ----- Mail original ----- De: "Alex C" <calyx238@gmail.com> À: "Perl Dancer users mailing list" <dancer-users@dancer.pm> Envoyé: Vendredi 28 Décembre 2012 18:18:12 Objet: Re: [dancer-users] Route dispatch Yuo are missing the semicolons after your sub declarations. Try it agian ;) On 28 December 2012 15:57, Celogeek < me@celogeek.com > wrote: Can I dispatch my root thought multiple module ? I have in App::Main : hook before => sub { var xxx => "test"; } and in App::Root; get "/" => sub { return vars->{xxx} } But vars seems empty. In my bin/app.psgi I have : use Dancer; use App::Main; use App::Root; start; _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
Sorry I have no experience with Dancer 2 or multiple contexts. This works on Dancer 1, if it is any help: #!/usr/bin/env perl use Dancer; { package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; } { package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; } start; Good luck.. On 28 December 2012 17:25, Celogeek <me@celogeek.com> wrote:
it's just a not working short example :)
but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main.
So my App::Root doesn't have it. And it was the case in Dancer 1.
I need to fully change my apps to make it work with Dancer2
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:18:12 *Objet: *Re: [dancer-users] Route dispatch
Yuo are missing the semicolons after your sub declarations. Try it agian ;)
On 28 December 2012 15:57, Celogeek <me@celogeek.com> wrote:
Can I dispatch my root thought multiple module ?
I have in App::Main :
hook before => sub { var xxx => "test"; }
and in App::Root;
get "/" => sub { return vars->{xxx} }
But vars seems empty.
In my bin/app.psgi I have :
use Dancer; use App::Main; use App::Root;
start;
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes ----- Mail original ----- De: "Alex C" <calyx238@gmail.com> À: "Perl Dancer users mailing list" <dancer-users@dancer.pm> Envoyé: Vendredi 28 Décembre 2012 18:33:57 Objet: Re: [dancer-users] Route dispatch Sorry I have no experience with Dancer 2 or multiple contexts. This works on Dancer 1, if it is any help: #!/usr/bin/env perl use Dancer; { package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; } { package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; } start; Good luck.. On 28 December 2012 17:25, Celogeek < me@celogeek.com > wrote: it's just a not working short example :) but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main. So my App::Root doesn't have it. And it was the case in Dancer 1. I need to fully change my apps to make it work with Dancer2 De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:18:12 Objet: Re: [dancer-users] Route dispatch Yuo are missing the semicolons after your sub declarations. Try it agian ;) On 28 December 2012 15:57, Celogeek < me@celogeek.com > wrote: <blockquote> Can I dispatch my root thought multiple module ? I have in App::Main : hook before => sub { var xxx => "test"; } and in App::Root; get "/" => sub { return vars->{xxx} } But vars seems empty. In my bin/app.psgi I have : use Dancer; use App::Main; use App::Root; start; _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
Now I understand what you mean. I also separate my routes into differnet modules, like this: # in MyApp::Controller hook before { var foo => 'bar' }; get '/' => \&MyApp::Controller::Root; # MyApp::Controller::Root get '/' => sub { my $var = vars->{foo}; ... }; I have yet to play with Dancer 2 but I expect I will have the same problems as you! I hope there is an easy solution to this or I cannot migrate to Dancer 2. On 28 December 2012 17:37, Celogeek <me@celogeek.com> wrote:
this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:33:57 *Objet: *Re: [dancer-users] Route dispatch
Sorry I have no experience with Dancer 2 or multiple contexts.
This works on Dancer 1, if it is any help:
#!/usr/bin/env perl
use Dancer;
{ package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; }
{ package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; }
start;
Good luck..
On 28 December 2012 17:25, Celogeek <me@celogeek.com> wrote:
it's just a not working short example :)
but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main.
So my App::Root doesn't have it. And it was the case in Dancer 1.
I need to fully change my apps to make it work with Dancer2
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:18:12 *Objet: *Re: [dancer-users] Route dispatch
Yuo are missing the semicolons after your sub declarations. Try it agian ;)
On 28 December 2012 15:57, Celogeek <me@celogeek.com> wrote:
Can I dispatch my root thought multiple module ?
I have in App::Main :
hook before => sub { var xxx => "test"; }
and in App::Root;
get "/" => sub { return vars->{xxx} }
But vars seems empty.
In my bin/app.psgi I have :
use Dancer; use App::Main; use App::Root;
start;
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
solution is to have only one Apps. And transform each submodule into a Moo::Role. may be ----- Mail original ----- De: "Alex C" <calyx238@gmail.com> À: "Perl Dancer users mailing list" <dancer-users@dancer.pm> Envoyé: Vendredi 28 Décembre 2012 18:46:16 Objet: Re: [dancer-users] Route dispatch Now I understand what you mean. I also separate my routes into differnet modules, like this: # in MyApp::Controller hook before { var foo => 'bar' }; get '/' => \&MyApp::Controller::Root; # MyApp::Controller::Root get '/' => sub { my $var = vars->{foo}; ... }; I have yet to play with Dancer 2 but I expect I will have the same problems as you! I hope there is an easy solution to this or I cannot migrate to Dancer 2. On 28 December 2012 17:37, Celogeek < me@celogeek.com > wrote: this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:33:57 Objet: Re: [dancer-users] Route dispatch Sorry I have no experience with Dancer 2 or multiple contexts. This works on Dancer 1, if it is any help: #!/usr/bin/env perl use Dancer; { package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; } { package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; } start; Good luck.. On 28 December 2012 17:25, Celogeek < me@celogeek.com > wrote: <blockquote> it's just a not working short example :) but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main. So my App::Root doesn't have it. And it was the case in Dancer 1. I need to fully change my apps to make it work with Dancer2 De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:18:12 Objet: Re: [dancer-users] Route dispatch Yuo are missing the semicolons after your sub declarations. Try it agian ;) On 28 December 2012 15:57, Celogeek < me@celogeek.com > wrote: <blockquote> Can I dispatch my root thought multiple module ? I have in App::Main : hook before => sub { var xxx => "test"; } and in App::Root; get "/" => sub { return vars->{xxx} } But vars seems empty. In my bin/app.psgi I have : use Dancer; use App::Main; use App::Root; start; _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
In my case, that would mean consuming 20+ roles into the same package, and I lose the benefit of package-scoping. I think there are many people who have spread their Dancer 1 routes across many packages. I would like to know the recommended best practice for migrating such apps to D2. On 28 December 2012 17:58, Celogeek <me@celogeek.com> wrote:
solution is to have only one Apps.
And transform each submodule into a Moo::Role.
may be
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:46:16 *Objet: *Re: [dancer-users] Route dispatch
Now I understand what you mean. I also separate my routes into differnet modules, like this:
# in MyApp::Controller
hook before { var foo => 'bar' };
get '/' => \&MyApp::Controller::Root;
# MyApp::Controller::Root
get '/' => sub { my $var = vars->{foo}; ... };
I have yet to play with Dancer 2 but I expect I will have the same problems as you!
I hope there is an easy solution to this or I cannot migrate to Dancer 2.
On 28 December 2012 17:37, Celogeek <me@celogeek.com> wrote:
this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:33:57 *Objet: *Re: [dancer-users] Route dispatch
Sorry I have no experience with Dancer 2 or multiple contexts.
This works on Dancer 1, if it is any help:
#!/usr/bin/env perl
use Dancer;
{ package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; }
{ package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; }
start;
Good luck..
On 28 December 2012 17:25, Celogeek <me@celogeek.com> wrote:
it's just a not working short example :)
but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main.
So my App::Root doesn't have it. And it was the case in Dancer 1.
I need to fully change my apps to make it work with Dancer2
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:18:12 *Objet: *Re: [dancer-users] Route dispatch
Yuo are missing the semicolons after your sub declarations. Try it agian ;)
On 28 December 2012 15:57, Celogeek <me@celogeek.com> wrote:
Can I dispatch my root thought multiple module ?
I have in App::Main :
hook before => sub { var xxx => "test"; }
and in App::Root;
get "/" => sub { return vars->{xxx} }
But vars seems empty.
In my bin/app.psgi I have :
use Dancer; use App::Main; use App::Root;
start;
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
Or we can push in a role the common part only between each module. For example, in my case, I have a common "before" hooks which initialize the redis connexion. So I can put this in a role, and that it. ----- Mail original ----- De: "Alex C" <calyx238@gmail.com> À: "Perl Dancer users mailing list" <dancer-users@dancer.pm> Envoyé: Vendredi 28 Décembre 2012 19:28:41 Objet: Re: [dancer-users] Route dispatch In my case, that would mean consuming 20+ roles into the same package, and I lose the benefit of package-scoping. I think there are many people who have spread their Dancer 1 routes across many packages. I would like to know the recommended best practice for migrating such apps to D2. On 28 December 2012 17:58, Celogeek < me@celogeek.com > wrote: solution is to have only one Apps. And transform each submodule into a Moo::Role. may be De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:46:16 Objet: Re: [dancer-users] Route dispatch Now I understand what you mean. I also separate my routes into differnet modules, like this: # in MyApp::Controller hook before { var foo => 'bar' }; get '/' => \&MyApp::Controller::Root; # MyApp::Controller::Root get '/' => sub { my $var = vars->{foo}; ... }; I have yet to play with Dancer 2 but I expect I will have the same problems as you! I hope there is an easy solution to this or I cannot migrate to Dancer 2. On 28 December 2012 17:37, Celogeek < me@celogeek.com > wrote: <blockquote> this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:33:57 Objet: Re: [dancer-users] Route dispatch Sorry I have no experience with Dancer 2 or multiple contexts. This works on Dancer 1, if it is any help: #!/usr/bin/env perl use Dancer; { package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; } { package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; } start; Good luck.. On 28 December 2012 17:25, Celogeek < me@celogeek.com > wrote: <blockquote> it's just a not working short example :) but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main. So my App::Root doesn't have it. And it was the case in Dancer 1. I need to fully change my apps to make it work with Dancer2 De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:18:12 Objet: Re: [dancer-users] Route dispatch Yuo are missing the semicolons after your sub declarations. Try it agian ;) On 28 December 2012 15:57, Celogeek < me@celogeek.com > wrote: <blockquote> Can I dispatch my root thought multiple module ? I have in App::Main : hook before => sub { var xxx => "test"; } and in App::Root; get "/" => sub { return vars->{xxx} } But vars seems empty. In my bin/app.psgi I have : use Dancer; use App::Main; use App::Root; start; _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
Like this? package MyApp::Role::Hooks; hook before { var foo => 'bar' }; package MyApp::Routes::RouteA; with 'MyApp::Role::Hooks'; get '/A' => sub { return vars->{foo} }; package MyApp::Routes::RouteB; with 'MyApp::Role::Hooks'; get '/B' => sub { return vars->{foo} }; I hope that works because it looks elegant. On 28 December 2012 18:35, Celogeek <me@celogeek.com> wrote:
Or we can push in a role the common part only between each module.
For example, in my case, I have a common "before" hooks which initialize the redis connexion. So I can put this in a role, and that it.
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 19:28:41 *Objet: *Re: [dancer-users] Route dispatch
In my case, that would mean consuming 20+ roles into the same package, and I lose the benefit of package-scoping.
I think there are many people who have spread their Dancer 1 routes across many packages. I would like to know the recommended best practice for migrating such apps to D2.
On 28 December 2012 17:58, Celogeek <me@celogeek.com> wrote:
solution is to have only one Apps.
And transform each submodule into a Moo::Role.
may be
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:46:16 *Objet: *Re: [dancer-users] Route dispatch
Now I understand what you mean. I also separate my routes into differnet modules, like this:
# in MyApp::Controller
hook before { var foo => 'bar' };
get '/' => \&MyApp::Controller::Root;
# MyApp::Controller::Root
get '/' => sub { my $var = vars->{foo}; ... };
I have yet to play with Dancer 2 but I expect I will have the same problems as you!
I hope there is an easy solution to this or I cannot migrate to Dancer 2.
On 28 December 2012 17:37, Celogeek <me@celogeek.com> wrote:
this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:33:57 *Objet: *Re: [dancer-users] Route dispatch
Sorry I have no experience with Dancer 2 or multiple contexts.
This works on Dancer 1, if it is any help:
#!/usr/bin/env perl
use Dancer;
{ package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; }
{ package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; }
start;
Good luck..
On 28 December 2012 17:25, Celogeek <me@celogeek.com> wrote:
it's just a not working short example :)
but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main.
So my App::Root doesn't have it. And it was the case in Dancer 1.
I need to fully change my apps to make it work with Dancer2
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:18:12 *Objet: *Re: [dancer-users] Route dispatch
Yuo are missing the semicolons after your sub declarations. Try it agian ;)
On 28 December 2012 15:57, Celogeek <me@celogeek.com> wrote:
Can I dispatch my root thought multiple module ?
I have in App::Main :
hook before => sub { var xxx => "test"; }
and in App::Root;
get "/" => sub { return vars->{xxx} }
But vars seems empty.
In my bin/app.psgi I have :
use Dancer; use App::Main; use App::Root;
start;
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
I'm trying right now on my apps (similar config) ----- Mail original ----- De: "Alex C" <calyx238@gmail.com> À: "Perl Dancer users mailing list" <dancer-users@dancer.pm> Envoyé: Vendredi 28 Décembre 2012 19:48:33 Objet: Re: [dancer-users] Route dispatch Like this? package MyApp::Role::Hooks; hook before { var foo => 'bar' }; package MyApp::Routes::RouteA; with 'MyApp::Role::Hooks'; get '/A' => sub { return vars->{foo} }; package MyApp::Routes::RouteB; with 'MyApp::Role::Hooks'; get '/B' => sub { return vars->{foo} }; I hope that works because it looks elegant. On 28 December 2012 18:35, Celogeek < me@celogeek.com > wrote: Or we can push in a role the common part only between each module. For example, in my case, I have a common "before" hooks which initialize the redis connexion. So I can put this in a role, and that it. De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 19:28:41 Objet: Re: [dancer-users] Route dispatch In my case, that would mean consuming 20+ roles into the same package, and I lose the benefit of package-scoping. I think there are many people who have spread their Dancer 1 routes across many packages. I would like to know the recommended best practice for migrating such apps to D2. On 28 December 2012 17:58, Celogeek < me@celogeek.com > wrote: <blockquote> solution is to have only one Apps. And transform each submodule into a Moo::Role. may be De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:46:16 Objet: Re: [dancer-users] Route dispatch Now I understand what you mean. I also separate my routes into differnet modules, like this: # in MyApp::Controller hook before { var foo => 'bar' }; get '/' => \&MyApp::Controller::Root; # MyApp::Controller::Root get '/' => sub { my $var = vars->{foo}; ... }; I have yet to play with Dancer 2 but I expect I will have the same problems as you! I hope there is an easy solution to this or I cannot migrate to Dancer 2. On 28 December 2012 17:37, Celogeek < me@celogeek.com > wrote: <blockquote> this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:33:57 Objet: Re: [dancer-users] Route dispatch Sorry I have no experience with Dancer 2 or multiple contexts. This works on Dancer 1, if it is any help: #!/usr/bin/env perl use Dancer; { package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; } { package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; } start; Good luck.. On 28 December 2012 17:25, Celogeek < me@celogeek.com > wrote: <blockquote> it's just a not working short example :) but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main. So my App::Root doesn't have it. And it was the case in Dancer 1. I need to fully change my apps to make it work with Dancer2 De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:18:12 Objet: Re: [dancer-users] Route dispatch Yuo are missing the semicolons after your sub declarations. Try it agian ;) On 28 December 2012 15:57, Celogeek < me@celogeek.com > wrote: <blockquote> Can I dispatch my root thought multiple module ? I have in App::Main : hook before => sub { var xxx => "test"; } and in App::Root; get "/" => sub { return vars->{xxx} } But vars seems empty. In my bin/app.psgi I have : use Dancer; use App::Main; use App::Root; start; _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
Um, seems doesn't work. How can I add a "before hooks" in a Moo::Role ? ----- Mail original ----- De: "Celogeek" <me@celogeek.com> À: "Perl Dancer users mailing list" <dancer-users@dancer.pm> Envoyé: Vendredi 28 Décembre 2012 20:23:36 Objet: Re: [dancer-users] Route dispatch I'm trying right now on my apps (similar config) ----- Mail original ----- De: "Alex C" <calyx238@gmail.com> À: "Perl Dancer users mailing list" <dancer-users@dancer.pm> Envoyé: Vendredi 28 Décembre 2012 19:48:33 Objet: Re: [dancer-users] Route dispatch Like this? package MyApp::Role::Hooks; hook before { var foo => 'bar' }; package MyApp::Routes::RouteA; with 'MyApp::Role::Hooks'; get '/A' => sub { return vars->{foo} }; package MyApp::Routes::RouteB; with 'MyApp::Role::Hooks'; get '/B' => sub { return vars->{foo} }; I hope that works because it looks elegant. On 28 December 2012 18:35, Celogeek < me@celogeek.com > wrote: Or we can push in a role the common part only between each module. For example, in my case, I have a common "before" hooks which initialize the redis connexion. So I can put this in a role, and that it. De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 19:28:41 Objet: Re: [dancer-users] Route dispatch In my case, that would mean consuming 20+ roles into the same package, and I lose the benefit of package-scoping. I think there are many people who have spread their Dancer 1 routes across many packages. I would like to know the recommended best practice for migrating such apps to D2. On 28 December 2012 17:58, Celogeek < me@celogeek.com > wrote: <blockquote> solution is to have only one Apps. And transform each submodule into a Moo::Role. may be De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:46:16 Objet: Re: [dancer-users] Route dispatch Now I understand what you mean. I also separate my routes into differnet modules, like this: # in MyApp::Controller hook before { var foo => 'bar' }; get '/' => \&MyApp::Controller::Root; # MyApp::Controller::Root get '/' => sub { my $var = vars->{foo}; ... }; I have yet to play with Dancer 2 but I expect I will have the same problems as you! I hope there is an easy solution to this or I cannot migrate to Dancer 2. On 28 December 2012 17:37, Celogeek < me@celogeek.com > wrote: <blockquote> this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:33:57 Objet: Re: [dancer-users] Route dispatch Sorry I have no experience with Dancer 2 or multiple contexts. This works on Dancer 1, if it is any help: #!/usr/bin/env perl use Dancer; { package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; } { package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; } start; Good luck.. On 28 December 2012 17:25, Celogeek < me@celogeek.com > wrote: <blockquote> it's just a not working short example :) but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main. So my App::Root doesn't have it. And it was the case in Dancer 1. I need to fully change my apps to make it work with Dancer2 De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:18:12 Objet: Re: [dancer-users] Route dispatch Yuo are missing the semicolons after your sub declarations. Try it agian ;) On 28 December 2012 15:57, Celogeek < me@celogeek.com > wrote: <blockquote> Can I dispatch my root thought multiple module ? I have in App::Main : hook before => sub { var xxx => "test"; } and in App::Root; get "/" => sub { return vars->{xxx} } But vars seems empty. In my bin/app.psgi I have : use Dancer; use App::Main; use App::Root; start; _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
It seems that the new way to do is to create a Dancer::Plugin that add a hooks. Then use it ! ----- Mail original ----- De: "Celogeek" <me@celogeek.com> À: "Perl Dancer users mailing list" <dancer-users@dancer.pm> Envoyé: Vendredi 28 Décembre 2012 20:33:02 Objet: Re: [dancer-users] Route dispatch Um, seems doesn't work. How can I add a "before hooks" in a Moo::Role ? ----- Mail original ----- De: "Celogeek" <me@celogeek.com> À: "Perl Dancer users mailing list" <dancer-users@dancer.pm> Envoyé: Vendredi 28 Décembre 2012 20:23:36 Objet: Re: [dancer-users] Route dispatch I'm trying right now on my apps (similar config) ----- Mail original ----- De: "Alex C" <calyx238@gmail.com> À: "Perl Dancer users mailing list" <dancer-users@dancer.pm> Envoyé: Vendredi 28 Décembre 2012 19:48:33 Objet: Re: [dancer-users] Route dispatch Like this? package MyApp::Role::Hooks; hook before { var foo => 'bar' }; package MyApp::Routes::RouteA; with 'MyApp::Role::Hooks'; get '/A' => sub { return vars->{foo} }; package MyApp::Routes::RouteB; with 'MyApp::Role::Hooks'; get '/B' => sub { return vars->{foo} }; I hope that works because it looks elegant. On 28 December 2012 18:35, Celogeek < me@celogeek.com > wrote: Or we can push in a role the common part only between each module. For example, in my case, I have a common "before" hooks which initialize the redis connexion. So I can put this in a role, and that it. De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 19:28:41 Objet: Re: [dancer-users] Route dispatch In my case, that would mean consuming 20+ roles into the same package, and I lose the benefit of package-scoping. I think there are many people who have spread their Dancer 1 routes across many packages. I would like to know the recommended best practice for migrating such apps to D2. On 28 December 2012 17:58, Celogeek < me@celogeek.com > wrote: <blockquote> solution is to have only one Apps. And transform each submodule into a Moo::Role. may be De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:46:16 Objet: Re: [dancer-users] Route dispatch Now I understand what you mean. I also separate my routes into differnet modules, like this: # in MyApp::Controller hook before { var foo => 'bar' }; get '/' => \&MyApp::Controller::Root; # MyApp::Controller::Root get '/' => sub { my $var = vars->{foo}; ... }; I have yet to play with Dancer 2 but I expect I will have the same problems as you! I hope there is an easy solution to this or I cannot migrate to Dancer 2. On 28 December 2012 17:37, Celogeek < me@celogeek.com > wrote: <blockquote> this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:33:57 Objet: Re: [dancer-users] Route dispatch Sorry I have no experience with Dancer 2 or multiple contexts. This works on Dancer 1, if it is any help: #!/usr/bin/env perl use Dancer; { package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; } { package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; } start; Good luck.. On 28 December 2012 17:25, Celogeek < me@celogeek.com > wrote: <blockquote> it's just a not working short example :) but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main. So my App::Root doesn't have it. And it was the case in Dancer 1. I need to fully change my apps to make it work with Dancer2 De: "Alex C" < calyx238@gmail.com > À: "Perl Dancer users mailing list" < dancer-users@dancer.pm > Envoyé: Vendredi 28 Décembre 2012 18:18:12 Objet: Re: [dancer-users] Route dispatch Yuo are missing the semicolons after your sub declarations. Try it agian ;) On 28 December 2012 15:57, Celogeek < me@celogeek.com > wrote: <blockquote> Can I dispatch my root thought multiple module ? I have in App::Main : hook before => sub { var xxx => "test"; } and in App::Root; get "/" => sub { return vars->{xxx} } But vars seems empty. In my bin/app.psgi I have : use Dancer; use App::Main; use App::Root; start; _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users </blockquote> _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
I just noticed this: Dancer 2.0 is at 89.83% ( 53 symbols supported on 59) ... Missing keywords: after, before, before_template, from_xml, load, to_xml (https://github.com/PerlDancer/Dancer2/) I think it is too soon to start using Dancer 2 in this way. On 28 December 2012 19:40, Celogeek <me@celogeek.com> wrote:
It seems that the new way to do is to create a Dancer::Plugin that add a hooks. Then use it !
------------------------------ *De: *"Celogeek" <me@celogeek.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 20:33:02 *Objet: *Re: [dancer-users] Route dispatch
Um, seems doesn't work.
How can I add a "before hooks" in a Moo::Role ?
------------------------------ *De: *"Celogeek" <me@celogeek.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 20:23:36 *Objet: *Re: [dancer-users] Route dispatch
I'm trying right now on my apps (similar config)
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 19:48:33 *Objet: *Re: [dancer-users] Route dispatch
Like this?
package MyApp::Role::Hooks; hook before { var foo => 'bar' };
package MyApp::Routes::RouteA; with 'MyApp::Role::Hooks'; get '/A' => sub { return vars->{foo} };
package MyApp::Routes::RouteB; with 'MyApp::Role::Hooks'; get '/B' => sub { return vars->{foo} };
I hope that works because it looks elegant.
On 28 December 2012 18:35, Celogeek <me@celogeek.com> wrote:
Or we can push in a role the common part only between each module.
For example, in my case, I have a common "before" hooks which initialize the redis connexion. So I can put this in a role, and that it.
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 19:28:41 *Objet: *Re: [dancer-users] Route dispatch
In my case, that would mean consuming 20+ roles into the same package, and I lose the benefit of package-scoping.
I think there are many people who have spread their Dancer 1 routes across many packages. I would like to know the recommended best practice for migrating such apps to D2.
On 28 December 2012 17:58, Celogeek <me@celogeek.com> wrote:
solution is to have only one Apps.
And transform each submodule into a Moo::Role.
may be
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:46:16 *Objet: *Re: [dancer-users] Route dispatch
Now I understand what you mean. I also separate my routes into differnet modules, like this:
# in MyApp::Controller
hook before { var foo => 'bar' };
get '/' => \&MyApp::Controller::Root;
# MyApp::Controller::Root
get '/' => sub { my $var = vars->{foo}; ... };
I have yet to play with Dancer 2 but I expect I will have the same problems as you!
I hope there is an easy solution to this or I cannot migrate to Dancer 2.
On 28 December 2012 17:37, Celogeek <me@celogeek.com> wrote:
this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:33:57 *Objet: *Re: [dancer-users] Route dispatch
Sorry I have no experience with Dancer 2 or multiple contexts.
This works on Dancer 1, if it is any help:
#!/usr/bin/env perl
use Dancer;
{ package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; }
{ package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; }
start;
Good luck..
On 28 December 2012 17:25, Celogeek <me@celogeek.com> wrote:
it's just a not working short example :)
but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main.
So my App::Root doesn't have it. And it was the case in Dancer 1.
I need to fully change my apps to make it work with Dancer2
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:18:12 *Objet: *Re: [dancer-users] Route dispatch
Yuo are missing the semicolons after your sub declarations. Try it agian ;)
On 28 December 2012 15:57, Celogeek <me@celogeek.com> wrote:
Can I dispatch my root thought multiple module ?
I have in App::Main :
hook before => sub { var xxx => "test"; }
and in App::Root;
get "/" => sub { return vars->{xxx} }
But vars seems empty.
In my bin/app.psgi I have :
use Dancer; use App::Main; use App::Root;
start;
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
What you're describing here is on purpose in Dancer 2, it's called "app scoping". Anything you do in a module (a App) is scope here. That's true for route, config entries, vars and everything you do. If you want to share information between multiple apps, you should consider using sessions rather than "vars" and share the session engine between apps like so: set session => 'Simple' use App1 with => { session => engine('session') }; use App2 with => { session => engine('session') }; 2012/12/28 Celogeek <me@celogeek.com>
It seems that the new way to do is to create a Dancer::Plugin that add a hooks. Then use it !
------------------------------ *De: *"Celogeek" <me@celogeek.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 20:33:02
*Objet: *Re: [dancer-users] Route dispatch
Um, seems doesn't work.
How can I add a "before hooks" in a Moo::Role ?
------------------------------ *De: *"Celogeek" <me@celogeek.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 20:23:36 *Objet: *Re: [dancer-users] Route dispatch
I'm trying right now on my apps (similar config)
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 19:48:33 *Objet: *Re: [dancer-users] Route dispatch
Like this?
package MyApp::Role::Hooks; hook before { var foo => 'bar' };
package MyApp::Routes::RouteA; with 'MyApp::Role::Hooks'; get '/A' => sub { return vars->{foo} };
package MyApp::Routes::RouteB; with 'MyApp::Role::Hooks'; get '/B' => sub { return vars->{foo} };
I hope that works because it looks elegant.
On 28 December 2012 18:35, Celogeek <me@celogeek.com> wrote:
Or we can push in a role the common part only between each module.
For example, in my case, I have a common "before" hooks which initialize the redis connexion. So I can put this in a role, and that it.
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 19:28:41 *Objet: *Re: [dancer-users] Route dispatch
In my case, that would mean consuming 20+ roles into the same package, and I lose the benefit of package-scoping.
I think there are many people who have spread their Dancer 1 routes across many packages. I would like to know the recommended best practice for migrating such apps to D2.
On 28 December 2012 17:58, Celogeek <me@celogeek.com> wrote:
solution is to have only one Apps.
And transform each submodule into a Moo::Role.
may be
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:46:16 *Objet: *Re: [dancer-users] Route dispatch
Now I understand what you mean. I also separate my routes into differnet modules, like this:
# in MyApp::Controller
hook before { var foo => 'bar' };
get '/' => \&MyApp::Controller::Root;
# MyApp::Controller::Root
get '/' => sub { my $var = vars->{foo}; ... };
I have yet to play with Dancer 2 but I expect I will have the same problems as you!
I hope there is an easy solution to this or I cannot migrate to Dancer 2.
On 28 December 2012 17:37, Celogeek <me@celogeek.com> wrote:
this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:33:57 *Objet: *Re: [dancer-users] Route dispatch
Sorry I have no experience with Dancer 2 or multiple contexts.
This works on Dancer 1, if it is any help:
#!/usr/bin/env perl
use Dancer;
{ package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; }
{ package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; }
start;
Good luck..
On 28 December 2012 17:25, Celogeek <me@celogeek.com> wrote:
it's just a not working short example :)
but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main.
So my App::Root doesn't have it. And it was the case in Dancer 1.
I need to fully change my apps to make it work with Dancer2
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:18:12 *Objet: *Re: [dancer-users] Route dispatch
Yuo are missing the semicolons after your sub declarations. Try it agian ;)
On 28 December 2012 15:57, Celogeek <me@celogeek.com> wrote:
Can I dispatch my root thought multiple module ?
I have in App::Main :
hook before => sub { var xxx => "test"; }
and in App::Root;
get "/" => sub { return vars->{xxx} }
But vars seems empty.
In my bin/app.psgi I have :
use Dancer; use App::Main; use App::Root;
start;
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
Does this mean that, for a single App, all the DSL keywords must be called within the same package? Therefore, the following style of development will not be possible. And every route must be defined in MyApp.pm. # app.pl use Dancer; use MyApp.pm; dance; # MyApp.pm use Dancer ':syntax'; use MyApp::Routes; # MyApp::Routes use Dancer ':syntax'; get '/login' => sub { ... }; get '/logout' => sub { ... }; On 28 December 2012 20:03, Alexis Sukrieh <sukria@sukria.net> wrote:
What you're describing here is on purpose in Dancer 2, it's called "app scoping".
Anything you do in a module (a App) is scope here. That's true for route, config entries, vars and everything you do.
If you want to share information between multiple apps, you should consider using sessions rather than "vars" and share the session engine between apps like so:
set session => 'Simple' use App1 with => { session => engine('session') }; use App2 with => { session => engine('session') };
2012/12/28 Celogeek <me@celogeek.com>
It seems that the new way to do is to create a Dancer::Plugin that add a hooks. Then use it !
------------------------------ *De: *"Celogeek" <me@celogeek.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 20:33:02
*Objet: *Re: [dancer-users] Route dispatch
Um, seems doesn't work.
How can I add a "before hooks" in a Moo::Role ?
------------------------------ *De: *"Celogeek" <me@celogeek.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 20:23:36 *Objet: *Re: [dancer-users] Route dispatch
I'm trying right now on my apps (similar config)
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 19:48:33 *Objet: *Re: [dancer-users] Route dispatch
Like this?
package MyApp::Role::Hooks; hook before { var foo => 'bar' };
package MyApp::Routes::RouteA; with 'MyApp::Role::Hooks'; get '/A' => sub { return vars->{foo} };
package MyApp::Routes::RouteB; with 'MyApp::Role::Hooks'; get '/B' => sub { return vars->{foo} };
I hope that works because it looks elegant.
On 28 December 2012 18:35, Celogeek <me@celogeek.com> wrote:
Or we can push in a role the common part only between each module.
For example, in my case, I have a common "before" hooks which initialize the redis connexion. So I can put this in a role, and that it.
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 19:28:41 *Objet: *Re: [dancer-users] Route dispatch
In my case, that would mean consuming 20+ roles into the same package, and I lose the benefit of package-scoping.
I think there are many people who have spread their Dancer 1 routes across many packages. I would like to know the recommended best practice for migrating such apps to D2.
On 28 December 2012 17:58, Celogeek <me@celogeek.com> wrote:
solution is to have only one Apps.
And transform each submodule into a Moo::Role.
may be
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:46:16 *Objet: *Re: [dancer-users] Route dispatch
Now I understand what you mean. I also separate my routes into differnet modules, like this:
# in MyApp::Controller
hook before { var foo => 'bar' };
get '/' => \&MyApp::Controller::Root;
# MyApp::Controller::Root
get '/' => sub { my $var = vars->{foo}; ... };
I have yet to play with Dancer 2 but I expect I will have the same problems as you!
I hope there is an easy solution to this or I cannot migrate to Dancer 2.
On 28 December 2012 17:37, Celogeek <me@celogeek.com> wrote:
this doesn't work with Dancer2 due to context. the hook is for route in App::Main so it doesn't fire with the App::Root routes
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:33:57 *Objet: *Re: [dancer-users] Route dispatch
Sorry I have no experience with Dancer 2 or multiple contexts.
This works on Dancer 1, if it is any help:
#!/usr/bin/env perl
use Dancer;
{ package App::Main; use Dancer ':syntax'; hook before => sub { var xxx => "test" }; 1; }
{ package App::Root; use Dancer ':syntax'; get "/" => sub { return vars->{xxx} }; 1; }
start;
Good luck..
On 28 December 2012 17:25, Celogeek <me@celogeek.com> wrote:
it's just a not working short example :)
but Dancer use context, so in my App::Main I have a before hooks that only apply to the route present in App::Main.
So my App::Root doesn't have it. And it was the case in Dancer 1.
I need to fully change my apps to make it work with Dancer2
------------------------------ *De: *"Alex C" <calyx238@gmail.com> *À: *"Perl Dancer users mailing list" <dancer-users@dancer.pm> *Envoyé: *Vendredi 28 Décembre 2012 18:18:12 *Objet: *Re: [dancer-users] Route dispatch
Yuo are missing the semicolons after your sub declarations. Try it agian ;)
On 28 December 2012 15:57, Celogeek <me@celogeek.com> wrote:
> Can I dispatch my root thought multiple module ? > > I have in App::Main : > > hook before => sub { > var xxx => "test"; > } > > and in App::Root; > > get "/" => sub { > return vars->{xxx} > } > > But vars seems empty. > > In my bin/app.psgi I have : > > use Dancer; > use App::Main; > use App::Root; > > start; > > > > _______________________________________________ > dancer-users mailing list > dancer-users@dancer.pm > http://lists.preshweb.co.uk/mailman/listinfo/dancer-users > >
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
participants (3)
-
Alex C -
Alexis Sukrieh -
Celogeek