<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Still looking for an answer as to the scope of a 'hook before'. 
    Does it affect all of the routes or just the routes within a
    'prefix'.   My understanding is that Dancer2 does away with the
    globals found in Dancer thus I would expect that a 'hook before'
    within a 'prefix' would remain within the scope of the 'prefix' and
    not flow outside of it into the other routes.  But this is not what
    I find thus I am curious as to if I am doing something wrong or have
    my concept wrong.<br>
    <br>
    Thanks,<br>
    -- Rick<br>
    <br>
    ----  Original message ---- <br>
    <br>
    Hello.  New Dancer2 user here.  I am having problems with the scope
    of a 'hook before' while using 'prefix'.  I am not sure if I am
    doing something dumb or if this is simply not possible or something
    else is going on.<br>
    <br>
    Using the prefix example from the Cookbook I have two modules<br>
    <br>
    <font face="Courier New, Courier, monospace">package myapp;<br>
      use Dancer2;<br>
      use myapp::admin;<br>
      <br>
      prefix undef;<br>
      get '/' => sub { return 'main ' . dancer_version };<br>
      1;</font><br>
    <br>
    And<br>
    <br>
    <font face="Courier New, Courier, monospace">package myapp::admin;<br>
      use Dancer2 appname => 'myapp';<br>
      <br>
      prefix '/admin';<br>
      <br>
      hook 'before' => sub {<br>
          if (dancer_app->environment ne 'rick') {<br>
              return halt;<br>
          }<br>
      };<br>
      <br>
      get '/' => sub { return 'admin' };<br>
      1;</font><br>
    <br>
    As expected when running with environment 'rick' then the following
    output is produced:<br>
    <br>
    <font face="Courier New, Courier, monospace">/        ==> main
      0.166001<br>
      /admin/  ==> admin<br>
    </font><br>
    But, unexpectedly to me, using the default 'development' environment
    has the app just halting as it, I presume, hits the 'hook
    before'.    I would have expected '/' to return with 'main 0.166001'
    while '/admin/' to halt.   In other words I would expect that the
    'hook before' is kept within the scope of the prefix '/admin' and
    not bleed over to the undef prefix.<br>
    <br>
    Any ideas on what is happening?  <br>
    <br>
    Thanks,<br>
    <pre class="moz-signature" cols="72">-- 
Rick Westerman 
<a class="moz-txt-link-abbreviated" href="mailto:westerman@purdue.edu">westerman@purdue.edu</a>

Bioinformatics specialist at the Genomics Facility.
Phone: (765) 494-0505           FAX: (765) 496-7255
Department of Horticulture and Landscape Architecture
625 Agriculture Mall Drive
West Lafayette, IN 47907-2010
Physically located in room S049, WSLR building</pre>
  </body>
</html>