XML-Feed-Aggregator
view release on metacpan or search on metacpan
t_data/blogsperl.atom view on Meta::CPAN
they would typicaly be run) you can add an order() method to each class
which returns an integer.</p>
<pre><code>package Your::Command::deploy;
sub order {1};
package Your::Command::test;
sub order {2};
package Your::Command::undeploy;
sub order {3};
</code></pre>
<p>And now we have:</p>
<pre><code>ex4$ ./ex
usage: ex [options] <command>
--help print usage message and exit
-n --dry-run print out SQL instead of running it
Commands:
deploy deploy to a database
test test a database
undeploy undeploy a database
</code></pre>
<p><a href="http://search.cpan.org/perldoc?App::Dispatcher">App::Dispatcher</a> is brand new and has just been uploaded to CPAN. Feedback, bug reports, patches etc are very welcome.</p>
<h2>Alternatives</h2>
<p>It seems the current state of the art for command line applications is
<a href="http://search.cpan.org/perldoc?App::Cmd">App::Cmd</a>. I wrote <a href="http://search.cpan.org/perldoc?App::Dispatcher">App::Dispatcher</a> out of the frustration with the
time that it takes <a href="http://search.cpan.org/perldoc?App::Cmd">App::Cmd</a> to simply generate a usage message,
since <a href="http://search.cpan.org/perldoc?App::Cmd">App::Cmd</a> loads every command class in an app dynamically.</p>
]]>
</content>
</entry>
<entry>
<title>Into The Labyrinth</title>
<link rel="alternate" type="text/html" href="http://blogs.perl.org/users/barbie/2011/02/into-the-labyrinth.html" />
<id>tag:blogs.perl.org,2011:/users/barbie//72.1449</id>
<published>2011-02-09T13:12:28Z</published>
<updated>2011-02-09T13:14:07Z</updated>
<summary>On the 1st January 2011, I released the first Open Source version of Labyrinth, both to CPAN and GitHub. In additon I also released several plugins and a demo site to highlight some of the basic functionality of the system....</summary>
<author>
<name>Barbie</name>
<uri>http://barbie.missbarbell.co.uk</uri>
</author>
<category term="labyrinthframeworkweb" label="labyrinth framework web" scheme="http://www.sixapart.com/ns/types#tag" />
<content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/barbie/">
<![CDATA[<p>On the 1st January 2011, I released the first Open Source version of <a href="http://labyrinth.missbarbell.co.uk">Labyrinth</a>, both to <a href="http://search.cpan.org/perldoc?Labyrinth">CPAN</a> and <a href="http://github.com/ba...
<p>Labyrinth has been in the making since December 2002, although the true beginnings are from about mid-2001. The codebase has evolved over the years as I've developed more and more websites, and got a better understanding exactly what I would want ...
<p>Labyrinth now is the backend to several Open Source websites, CPAN Testers using it for the <a href="http://www.cpantesters.org/">Reports</a>, <a href="http://blog.cpantesters.org/">Blog</a>, <a href="http://wiki.cpantesters.org/">Wiki</a> and <a ...
<p>As mentioned, I see Labyrinth as a Website Management System. While many similar applications and frameworks provide the scaffolding for a Content Management System, Labyrinth extends that by not only providing the ability to manage your conten...
<p>When writing the fore-runner to Labyrinth, one aspect required was the ability to turn on and off functionality instantly, which meant much of the logic flow was described in the data, not the code. Labyrinth has built on this idea, so that the...
<p>I'm primarily releasing Labyrinth so that I can release all the code that drives the CPAN Testers websites. Giving others the ability to better suggest improvements and contribute. The system allows me the freedom to build websites quickly and ...
<p>More news of plugins and sites being released coming soon.</p>
]]>
</content>
</entry>
<entry>
<title>Testing your Mojo with Test::Mojo</title>
<link rel="alternate" type="text/html" href="http://blogs.perl.org/users/tempire/2011/02/testing-your-mojo-with-testmojo.html" />
<id>tag:blogs.perl.org,2011:/users/tempire//286.1448</id>
<published>2011-02-09T10:54:06Z</published>
<updated>2011-02-09T12:17:07Z</updated>
<summary>They say programmers don't like to test. It seems to me that the folks who say that aren't programmers. If they are, they've never been the sole responsible party for any application. When there's no one to pass the b...
<author>
<name>tempire</name>
<uri>http://empireenterprises.com/</uri>
</author>
<content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/tempire/">
<![CDATA[<p>They say programmers don't like to test.</p>
<p>It seems to me that the folks who say that aren't programmers. If they are, they've never been the sole responsible party for any application. When there's no one to pass the blame to, TDD is no longer just an idea, it's time & money.</p>
<p>Once you get the hang of it, the peace of knowing that your code works has a value beyond measurement. </p>
<p>It's for this reason Mojolicious makes it easy to test your web apps in a clean, simple manner.</p>
<p><script src="https://gist.github.com/817976.js?file=gistfile1.pl"></script></p>
<p>Now that's easy. But there's more.</p>
<p>Test::Mojo tests are chainable, so you can keep your tests in a clean group:</p>
<p><script src="https://gist.github.com/817981.js?file=gistfile1.pl"></script></p>
<p>Now that's pretty. But wait, there's more.</p>
<p>Using Mojolicious' built in JSON parser, you can test JSON output using an equivalent decoded Perl structure:</p>
<p><script src="https://gist.github.com/817985.js?file=gistfile1.pl"></script></p>
<p>On a side note, Mojo::JSON is the fastest pure-perl JSON parser available. Thanks to chansen, it recently became even faster, outperforming JSON::PP by 3x.</p>
<p>But wait, there's more.</p>
<p>Test::Mojo methods have exactly the same syntax as their corresponding Mojo::Client methods, sharing much of the same code.</p>
<p>For example, with Mojo::Client, you would write:</p>
<p><script src="https://gist.github.com/817988.js?file=gistfile1.pl"></script></p>
<p>Testing the route would be nearly the same thing - Just add the _ok suffix, and you're good to go:</p>
<p><script src="https://gist.github.com/817998.js?file=gistfile1.pl"></script></p>
( run in 1.218 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )