Acme-CPANModulesBundle-Import-MojoliciousAdvent-2018

 view release on metacpan or  search on metacpan

devdata/https_mojolicious.io_blog_2018_12_01_welcome-mojoconf-recap_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_02_automatic-reload-for-rapid-development_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_03_higher-order-promises_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_04_testing-hooks-and-helpers_  view on Meta::CPAN

a <a href="https://mojolicious.org/perldoc/Mojolicious/Guides/Rendering#Helpers">helper</a>?
We can test all those things, too!</p>

              </section>
              <section id="section-2">
                  <h1>Hooks</h1>

<p>To thoroughly test hooks, I need to find ways to configure my test
cases. I could count on my application to do it, and find the right
routes to test the right behavior. But, that creates larger tests that
integrate different parts and makes test failures harder to debug. What
I want is to isolate the thing I&#39;m testing. The best way to do that is
to create routes that test only what I want to test.</p>

<p>What if I have a hook to log exceptions to a special log file, like so:</p>

<pre><code>#!/usr/bin/env perl
use Mojolicious::Lite;
# Log exceptions to a separate log file
hook after_dispatch =&gt; sub {
    my ( $c ) = @_;

devdata/https_mojolicious.io_blog_2018_12_04_testing-hooks-and-helpers_  view on Meta::CPAN

</code></pre>

<p>Of course, we&#39;ll still need to test whether the routes we want to
protect with tokens are protected, but this shows that our
authentication helper works so if there are problems with our routes,
it&#39;s probably not here.</p>

<p>So, it&#39;s not only the web requests in our app I can test. When I need to
test hooks, I can make my own routes for testing. When I need to test
helpers, I can do so by directly calling them. The narrower the scope of
the test, the easier debugging of test failures!</p>

              </section>
              <small><p>Photo from pexels.com, licensed CC0.</p>
</small>

              <p class="tags">
                <span>Tagged in </span>:
                  <a href="/blog/tag/advent/">advent</a>,
                  <a href="/blog/tag/testing/">testing</a>
              </p>

devdata/https_mojolicious.io_blog_2018_12_04_testing-hooks-and-helpers_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_05_compound-selectors_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_06_making-a-list-with-yancy_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_07_openapi_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_08_authenticating-with-ldap_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_09_add-a-theme-system-to-your-mojolicious-app_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_10_minion-stands-alone_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_11_who-watches-the-minions_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_12_dancer-and-minion_  view on Meta::CPAN


sub job_queue {
    return MyJob::JobQueue-&gt;new;
}

get &#39;/my/api/route/:guid/:group/:force&#39; =&gt; sub {
    my $guid  = route_parameters-&gt;get( &#39;guid&#39; );
    my $group = route_parameters-&gt;get( &#39;group&#39; );
    my $force = route_parameters-&gt;get( &#39;force&#39; );

    debug &quot;GENERATING XML ONLY FOR $guid&quot;;
    job_queue-&gt;queue_job({
        name     =&gt; &quot;InstantXML&quot;,
        guid     =&gt; $guid,
        title    =&gt; &quot;Instant XML Generator&quot;,
        queue    =&gt; &#39;InstantXML&#39;,
        job_args =&gt; [ $self-&gt;request_path, $guid, $group, $force ],
    });
}
</code></pre>

devdata/https_mojolicious.io_blog_2018_12_12_dancer-and-minion_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_13_taking-on-roles_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_14_a-practical-example-of-mojo-dom_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_15_practical-web-content-munging_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_16_browser-diet_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_17_a-website-for-yancy_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_18_a-view-to-a-pod_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_19_you-only-export-twice_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_20_testing-dancer_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_21_a-little-christmas-template-cooking_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_22_use-carton-for-your-mojolicious-app-deployment_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_23_mojolicious-and-angular_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_24_async-await-the-mojo-way_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2018_12_25_special-thanks_  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>



( run in 0.610 second using v1.01-cache-2.11-cpan-cba739cd03b )