Problem with using the prefix feature to split the application
I was using the following idiom, and everything was working fine ---- package app; use Dancer ':syntax'; use Dancer::Plugin::Ajax; load_app "app::app1", prefix => "/app1"; load_app "app::app2", prefix => "/app2"; .. true; ---- package app::app1; use Dancer ':syntax'; .. true; ---- package app::app2; use Dancer ':syntax'; .. true; ---- The above was a holdover from earlier versions of Dancer, but, as I noted above, it was working fine. Today I noticed that the Dancer::Cookbook has a different suggestion, so I implemented that and ran into a problem. My new implementation is ---- package app; use Dancer ':syntax'; use Dancer::Plugin::Ajax; use app::app1; use app::app2; prefix undef; .. true; ---- package app::app1; use Dancer ':syntax'; prefix 'app1'; .. true; ---- package app::app2; use Dancer ':syntax'; prefix 'app2'; .. true; ---- I get the following error Error while loading /Users/punkish/Sites/app/app.pl: unable to load application app : not a valid prefix: `app', must start with a / at /usr/local/lib/perl5/site_perl/5.12.1/Dancer/App.pm line 32., referer: http://app.local/app1/ What gives? -- Puneet Kishor
Hi I was using the following idiom, and everything was working fine
---- package app; use Dancer ':syntax'; use Dancer::Plugin::Ajax;
load_app "app::app1", prefix => "/app1"; load_app "app::app2", prefix => "/app2";
..
true; ----
package app::app1; use Dancer ':syntax';
..
true; ----
package app::app2; use Dancer ':syntax';
..
true; ----
The above was a holdover from earlier versions of Dancer, but, as I noted above, it was working fine. Today I noticed that the Dancer::Cookbook has a different suggestion, so I implemented that and ran into a problem. My new implementation is
---- package app; use Dancer ':syntax'; use Dancer::Plugin::Ajax;
use app::app1; use app::app2;
prefix undef;
..
true; ----
package app::app1; use Dancer ':syntax'; prefix 'app1'; ..
true; ----
package app::app2; use Dancer ':syntax'; prefix 'app2'; ..
true; ----
I get the following error
Error while loading /Users/punkish/Sites/app/app.pl: unable to load application app : not a valid prefix: `app', must start with a / at /usr/local/lib/perl5/site_perl/5.12.1/Dancer/App.pm line 32., referer: http://app.local/app1/
What gives?
a prefix must start with '/', if the '/' is missing in the cookbook, it's
an error, and that will be fixed right away. However, I prefer your first solution :) (load_app "app::app1", prefix => "/app1";)
Thanks for the quick reply. On Sat, Oct 2, 2010 at 1:26 PM, franck <franck@lumberjaph.net> wrote:
Hi
I was using the following idiom, and everything was working fine
---- package app; use Dancer ':syntax'; use Dancer::Plugin::Ajax;
load_app "app::app1", prefix => "/app1"; load_app "app::app2", prefix => "/app2";
..
true; ----
package app::app1; use Dancer ':syntax';
..
true; ----
package app::app2; use Dancer ':syntax';
..
true; ----
The above was a holdover from earlier versions of Dancer, but, as I noted above, it was working fine. Today I noticed that the Dancer::Cookbook has a different suggestion, so I implemented that and ran into a problem. My new implementation is
---- package app; use Dancer ':syntax'; use Dancer::Plugin::Ajax;
use app::app1; use app::app2;
prefix undef;
..
true; ----
package app::app1; use Dancer ':syntax'; prefix 'app1'; ..
true; ----
package app::app2; use Dancer ':syntax'; prefix 'app2'; ..
true; ----
I get the following error
Error while loading /Users/punkish/Sites/app/app.pl: unable to load application app : not a valid prefix: `app', must start with a / at /usr/local/lib/perl5/site_perl/5.12.1/Dancer/App.pm line 32., referer: http://app.local/app1/
What gives?
a prefix must start with '/', if the '/' is missing in the cookbook, it's an error, and that will be fixed right away.
Yes, it is missing in the cookbook.
However, I prefer your first solution :) (load_app "app::app1", prefix => "/app1";)
Hmmm.... then shouldn't the cookbook show the preferred solution -- I am assuming you know way more than I do about Dancer, and if you prefer a particular solution, that *should* be the preferred solution, no? ;-) -- Puneet Kishor http://www.punkish.org Carbon Model http://carbonmodel.org Charter Member, Open Source Geospatial Foundation http://www.osgeo.org Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor Nelson Institute, UW-Madison http://www.nelson.wisc.edu ----------------------------------------------------------------------- Assertions are politics; backing up assertions with evidence is science =======================================================================
they do the same thing. But if you plan to re-use the app1 package in another application, you don't want to have "prefix" hardcoded in the package, and you will prefer to do a "load_app 'app1', prefix => '/whatever'". but you're right, we should update the cookbook to explain why this solution is better :) On Sat, Oct 2, 2010 at 8:28 PM, P Kishor <punk.kish@gmail.com> wrote:
Thanks for the quick reply.
On Sat, Oct 2, 2010 at 1:26 PM, franck <franck@lumberjaph.net> wrote:
Hi
I was using the following idiom, and everything was working fine
---- package app; use Dancer ':syntax'; use Dancer::Plugin::Ajax;
load_app "app::app1", prefix => "/app1"; load_app "app::app2", prefix => "/app2";
..
true; ----
package app::app1; use Dancer ':syntax';
..
true; ----
package app::app2; use Dancer ':syntax';
..
true; ----
The above was a holdover from earlier versions of Dancer, but, as I noted above, it was working fine. Today I noticed that the Dancer::Cookbook has a different suggestion, so I implemented that and ran into a problem. My new implementation is
---- package app; use Dancer ':syntax'; use Dancer::Plugin::Ajax;
use app::app1; use app::app2;
prefix undef;
..
true; ----
package app::app1; use Dancer ':syntax'; prefix 'app1'; ..
true; ----
package app::app2; use Dancer ':syntax'; prefix 'app2'; ..
true; ----
I get the following error
Error while loading /Users/punkish/Sites/app/app.pl: unable to load application app : not a valid prefix: `app', must start with a / at /usr/local/lib/perl5/site_perl/5.12.1/Dancer/App.pm line 32., referer: http://app.local/app1/
What gives?
a prefix must start with '/', if the '/' is missing in the cookbook, it's an error, and that will be fixed right away.
Yes, it is missing in the cookbook.
However, I prefer your first solution :) (load_app "app::app1", prefix => "/app1";)
Hmmm.... then shouldn't the cookbook show the preferred solution -- I am assuming you know way more than I do about Dancer, and if you prefer a particular solution, that *should* be the preferred solution, no? ;-)
-- Puneet Kishor http://www.punkish.org Carbon Model http://carbonmodel.org Charter Member, Open Source Geospatial Foundation http://www.osgeo.org Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor Nelson Institute, UW-Madison http://www.nelson.wisc.edu ----------------------------------------------------------------------- Assertions are politics; backing up assertions with evidence is science =======================================================================
participants (2)
-
franck -
P Kishor