Dancer release codename "Yanick in Black"
Yesterday was May Day, also known as Labor Day. We finished a development release cycle successfully and it was about time to release a stable.
This release, as promised, is named after someone who has been in the Dancer community for a while and indeed deserved the recognition: Yanick Champoux. You can find the first commit by Yanick in the 4th development release of 1.2000 - wayyyy back. Since then he has also written quite a bit on Dancer as well, showing off how to use Dancer in production environments and having a lot of fun with it at the same time.
Yanick has made a major contribution to this release - the megasplat
route ability allows for much more sophisticated chained actions. By using a double asterisk in the route syntax, you're able to get the remainder of the route path , already split, at your convenience. Then you can reroute using pass(). Here is an example from the documentation:
get '/entry/*/tags/**' => sub { my ( $entry_id, $tags ) = splat; my @tags = @{$tags}; };
An example of a chained action:
get '/team/*/**' => sub { my ($team) = splat; var team => $team; pass; };prefix '/team/*';
get '/player/*' => sub {
my ($player) = splat;# etc...
};get '/score' => sub {
return score_for( vars->{'team'} );
};
You might also wonder where the "in Black" part of the release name is from. This is a reference to "Man in Black", a song by Johnny Cash, with whom we identify the working-class struggle. Since it's May Day, we thought it would be relevant.
Thanks to everyone who helped with this release: Yanick Champoux, Alberto Simões, Brian E. Lozier, Stefan Hornburg, Michael G. Schwern, Franck Cuny, JT Smith and the wonderful David Precious.
We are working on yet another release this week, with some hooking love. I'll keep you guessing what the hell that means for now. :)
megasplat really fills in a gap in Dancer's usability - I ended up using complicated regular expressions and captures.
Thanks for the release.
I'll post a longer reaction to the news once I can articulate something past the insanely wide silly grin that is threatening to split my head in half. But, in the meantime: I am honored, I am thrilled, and most of all I am ever grateful that you guys let me play with your baby.
And now, if you excuse me, I have to go and -- topically enough -- do a little victory dance. ^.^
I'll post a longer reaction to the news once I can articulate something past the insanely wide silly grin that is threatening to split my head in half. But, in the meantime: I am honored, I am thrilled, and most of all I am ever grateful that you guys let me play with your baby.
And now, if you excuse me, I have to go and -- topically enough -- do a little victory dance.
I'll post a longer reaction to the news once I can articulate something past the insanely wide silly grin that is threatening to split my head in half. But, in the meantime: I am honored, I am thrilled, and most of all I am ever grateful that you guys let me play with your baby.
And now, if you excuse me, I have to go and - topically enough - do a little victory dance.